Тема_2 (1122332), страница 2
Текст из файла (страница 2)
Кузнецов. Базы данных.15 Понятие модели даРанние модели данных (9)Модель данных инвертированных таблиц (6). ОграниченияцелостностиОбщие правила определения целостностиБД отсутствуют.В некоторых системах поддерживаютсяограничения уникальности значенийнекоторых полей,но в основном вся поддержка целостностиданных возлагается на прикладную программу.16.09.2008С.Д. Кузнецов. Базы данных.16 Понятие модели даРанние модели данных (10)Иерархическая модель данных (1)Типичным представителем (наиболееизвестным и распространенным) являетсяСУБД IMS (Information ManagementSystem) компании IBM.Первая версия системы появилась в 1968году.16.09.2008С.Д.
Кузнецов. Базы данных.17 Понятие модели даРанние модели данных (11)Иерархическая модель данных (2). Структуры данных(1) Иерархическая БД состоит из упорядоченногонабора деревьев;Тип дерева состоит из одного «корневого» типазаписи и упорядоченного набора из нуля илиболее типов поддеревьев,более точно, из упорядоченного набора несколькихэкземпляров одного типа дерева.каждое из которых является некоторым типом дерева.Тип дерева в целом представляет собойиерархически организованный набор типовзаписи.16.09.2008С.Д. Кузнецов. Базы данных.18 Понятие модели даРанние модели данных (12)Иерархическая модель данных (3). Структуры данных(2)Пример типа дерева (схемы иерархической БД).Тип записи Отдел является предком для типов записи Руководитель иСлужащие,а Руководитель и Служащие – потомки типа записи Отдел.Поле Рук_Отдел типа записи Руководитель содержит номер отдела, в которомработает служащий, являющийся данным руководителем (предполагается, чтоон работает не обязательно в том же отделе, которым руководит).Между типами записи поддерживаются связи (правильнеесказать, типы связей, поскольку реальные связи появляются вэкземплярах типа дерева).16.09.2008С.Д.
Кузнецов. Базы данных.19 Понятие модели даРанние модели данных (13)Иерархическая модель данных (4). Структуры данных(3)База данных с такой схемоймы показываем один экземпляр дерева.Все экземпляры данного типа потомка с общим экземпляромтипа предка называются близнецами.Для иерархической базы данных определяется полный порядокобхода дерева: сверху-вниз, слева-направо.16.09.2008С.Д. Кузнецов.
Базы данных.20 Понятие модели даРанние модели данных (14)Иерархическая модель данных (5). Манипулирование даннымиПримеры типичных операций манипулированияиерархически организованными данными:найти указанный экземпляр типа дерева БД (например,отдел 310);перейти от одного экземпляра типа дерева к другому;перейти от экземпляра одного типа записи к экземплярудругого типа записи внутри дерева (например, перейтиот отдела к первому сотруднику);перейти от одной записи к другой в порядке обходаиерархии;вставить новую запись в указанную позицию;удалить текущую запись.16.09.2008С.Д.
Кузнецов. Базы данных.21 Понятие модели даРанние модели данных (15)Иерархическая модель данных (6). Ограничения целостностиВ иерархической модели данных автоматическиподдерживается целостность ссылок междупредками и потомками.Основное правило: никакой потомок не можетсуществовать без своего родителя.Аналогичная поддержка целостности по ссылкаммежду записями без связи «предок-потомок», необеспечивается.Примером такой «внешней» ссылки являетсясодержимое поля Рук_Отдел в экземпляре типа записиРуководитель.16.09.2008С.Д. Кузнецов. Базы данных.22 Понятие модели даРанние модели данных (16)Сетевая модель данных (1)Типичным представителем систем, основанных насетевой модели данных, является СУБД IDMS (IntegratedDatabase Management System),Архитектура системы основана на предложениях DataBase Task Group (DBTG) организации CODASYL(Conference on Data Systems Languages),разработанная компанией Cullinet Software, Inc. и изначальноориентированная на использования на мейнфреймах компании IBM.которая отвечала за определение языка программирования COBOL.Отчет DBTG был опубликован в 1971 г., и вскоре послеэтого появилось несколько систем, поддерживающихархитектуру CODASYL, среди которых присутствовала иСУБД IDMS.В настоящее время IDMS принадлежит компанииComputer Associates.16.09.2008С.Д.
Кузнецов. Базы данных.23 Понятие модели даРанние модели данных (17)Сетевая модель данных (2)(1)Сетевой подход к организации данных являетсярасширением иерархического подхода:Сетевые структуры данныхв иерархических структурах запись-потомок должнаиметь в точности одного предка;в сетевой структуре данных у потомка может иметьсялюбое число предков.Сетевая БД состоит из набора записей и наборасвязей между этими записями,более точно, из набора экземпляров каждого типа иззаданного в схеме БД набора типов записи и набораэкземпляров каждого типа из заданного набора типовсвязи.16.09.2008С.Д.
Кузнецов. Базы данных.24 Понятие модели даРанние модели данных (18)Сетевая модель данных (3)Сетевые структуры данных(2)Тип связи определяется для двух типов записи:предка и потомка.Экземпляр типа связи состоит из одного экземпляратипа записи предка и упорядоченного набораэкземпляров типа записи потомка.Для данного типа связи L с типом записи предка P итипом записи потомка C должны выполнятьсяследующие два условия:каждый экземпляр типа записи P является предкомтолько в одном экземпляре типа связи L;каждый экземпляр типа записи C является потомком неболее чем в одном экземпляре типа связи L.16.09.2008С.Д. Кузнецов.
Базы данных.25 Понятие модели даРанние модели данных (19)Сетевая модель данных (4)Сетевые структуры данных(3) Наформирование типов связи ненакладываются особые ограничения;возможны, например, следующиеситуации:тип записи потомка в одном типе связи L1может быть типом записи предка в другом типесвязи L2 (как в иерархии);данный тип записи P может быть типом записипредка в любом числе типов связи;данный тип записи P может быть типом записипотомка в любом числе типов связи;16.09.2008С.Д. Кузнецов. Базы данных.26 Понятие модели даРанние модели данных (20)Сетевая модель данных (5)(4)может существовать любое число типов связи с одними тем же типом записи предка и одним и тем же типомзаписи потомка;Сетевые структуры данныхи если L1 и L2 – два типа связи с одним и тем же типомзаписи предка P и одним и тем же типом записи потомкаC, то правила, по которым образуется родство, в разныхсвязях могут различаться;типы записи X и Y могут быть предком и потомком водной связи и потомком и предком - в другой;предок и потомок могут быть одного типа записи.16.09.2008С.Д.
Кузнецов. Базы данных.27 Понятие модели даРанние модели данных (21)Сетевая модель данных (6)Сетевые структуры данных(5)Простой пример схемы сетевой БД.Три типа записей: Отдел, Служащие и Руководитель и тритипа связи: Состоит из служащих, Имеет руководителя иЯвляется служащим.В типе связи Состоит из служащих типом записи-предкомявляется Отдел, а типом записи-потомком – Служащие экземпляр этого типа связи связывает экземпляр типа записиОтдел со многими экземплярами типа записи Служащие,соответствующими всем служащим данного отдела.16.09.2008С.Д. Кузнецов. Базы данных.28 Понятие модели даРанние модели данных (22)Сетевая модель данных (7)Сетевые структуры данных(6)В типе связи Имеет руководителя типом записи-предком являетсяОтдел, а типом записи-потомком – Руководительэкземпляр этого типа связи связывает экземпляр типа записи Отдел содним экземпляром типа записи Руководитель, соответствующимруководителю данного отдела.В типе связи Является служащим типом записи-предком являетсяРуководитель, а типом записи-потомком – Служащиеэкземпляр этого типа связи связывает экземпляр типа записиРуководитель с одним экземпляром типа записи Служащие,соответствующим тому служащему, которым является данныйруководитель.16.09.2008С.Д.
Кузнецов. Базы данных.29 Понятие модели даРанние модели данных (23)Сетевая модель данных (8)(1)Манипулирование даннымиПримерный набор операцийманипулирования данными:найти конкретную запись в наборе однотипныхзаписей (например, служащего с именемИванов);перейти от предка к первому потомку понекоторой связи (например, к первомуслужащему отдела 625);перейти к следующему потомку в некоторойсвязи (например, от Иванова к Сидорову);16.09.2008С.Д. Кузнецов. Базы данных.30 Понятие модели даРанние модели данных (24)Сетевая модель данных (9)(2)перейти от потомка к предку по некоторойсвязиМанипулирование данныминапример, найти отдел, в котором работаетСидоров;создать новую запись;уничтожить запись;модифицировать запись;включить в связь;исключить из связи;переставить в другую связь и т.д.16.09.2008С.Д.
Кузнецов. Базы данных.31 Понятие модели даРанние модели данных (25)Сетевая модель данных (10)Ограничения целостностиИмеется (необязательная) возможность потребоватьдля конкретного типа связи отсутствие потомков, неучаствующих ни в одном экземпляре этого типасвязикак в иерархической модели.16.09.2008С.Д. Кузнецов.
Базы данных.32 Понятие модели даНеформальное введение вреляционную модель данных (1)Основные идеи реляционной модели данных были предложены ЭдгаромКоддом в 1969 г.Несмотря на общепризнанную значимость этой и последующих работ Кодда,эти работыE. F. Codd. Derivability, Redundancy and Consistency of Relations Stored in Large Data Banks . Зановоопубликовано в ACM SIGMOD Record, March 2009 (Vol. 38, No. 1).Имеется русский перевод: Э.Ф. Кодд. “Выводимость, избыточность и согласованность отношений,хранимых в крупных банках данных”, http://citforum.ru/database/classics/first_rel_paper/писались на идейном уровне,не были (по теперешним меркам) глубоко технически проработанными,во многих важных местах допускали неоднозначное толкование.Поэтому эти работы невозможно было использовать как непосредственноеруководство для реализации СУБД, поддерживающей реляционную модель.За прошедшие десятилетия реляционная модель развивалась в двухнаправлениях.Первое направление заложил экспериментальный проект компании IBM SystemR.В этом проекте возник язык SQL, изначально основанный на идеях Кодда, нонарушающий некоторые принципиальные предписания реляционной модели.К настоящему времени в действующем стандарте языка SQL, по сути,специфицирована некоторая собственная, законченная модель данных.16.09.2008С.Д.
Кузнецов. Базы данных.33 Понятие модели даНеформальное введение вреляционную модель данных (2)Второе направление, начиная с 1990-х гг., возглавляетКристофер Дейт, к которому позже примкнул Хью Дарвен.Оба этих ученых также работали в компании IBM и до 1990-хгг. внесли большой вклад в развитие языка SQL.Однако в 1990-е гг. Дейт и Дарвен пришли к выводу, чтоискажения реляционной модели данных, свойственныеязыку SQL, достигли настолько высокого уровня, что пришловремя предложить альтернативу, опирающуюся на неискаженные идеи Эдгара Кодда иобеспечивающую все возможностикак SQL,так и объектно-ориентированного подхода к организации базданных и СУБД.16.09.2008С.Д.
Кузнецов. Базы данных.34 Понятие модели даНеформальное введение вреляционную модель данных (3)Новые идеи Дейта и Дарвена были впервыеизложены в их Третьем манифесте, а позже наоснове этих идей была специфицирована модельданных.Авторы считают, что они приводят всего лишьсовременную и полную интерпретацию идей Кодда.С этим можно соглашаться или спорить, нобесспорен один факт – Кодд не участвовал внаписании этих материалов и никогда не писал чтолибо подобное.Тем не менее, далее при обсуждении реляционноймодели мы будем использовать, в основном,интерпретацию Дейта и Дарвена.16.09.2008С.Д. Кузнецов. Базы данных.35 Понятие модели даНеформальное введение в реляционную модель данных (4)Реляционные структуры данных (1)Основная идея Кодда состояла в том, чтобы выбрать вкачестве родовой логической структуры хранения данныхструктуру, которая, с одной стороны, была бы достаточноудобной для большинства приложений и, с другойстороны, допускала бы возможность выполнения надбазой данных ненавигационных операций.Иерархические и, в особенности, сетевые структурыданных являются навигационными по своей природе.Ненавигационному использованию таблиц мешаетупорядоченность их столбцов и, в особенности, строк.По сути, Кодд предложил использовать в качестверодовой структуры БД «таблицы», в которых и столбцы, истроки не являются упорядоченными16.09.2008С.Д.