С.Д. Кузнецов - Основы баз данных (1121716), страница 93
Текст из файла (страница 93)
На первый взгляд материал этой лекции проще материала предыдуших лекций, посвященных языку Я)Ь. Наверное, это действительно так, если говорить про чисто языковую сложность соответствующих операторов 8О).. Но в действительности (которую мы старательно обходили в основных разделах лекции) дело обстоит гораздо сложнее. Как легко видеть, при распространении привилегий и ролей могут возникать произвольно сложные ориентированные графы связей между обьектами базы данных, владельцами привилегий, привилегиями и ролями.
Если изображать сплошными стрелками передачу привилегий, прерывистыми — передачу ролей, пунктирными — владение привилегиями, а точечными — владение ролями, то даже по отношению к одной привилегии рг для одного объекта о может появиться следующий граф связей (ивегто означает анььто, отличный от имени роли), показанному на рис.
18.8. Как мог появиться такой граф? Пользователь с аиььто, равным ивегтот (это мы предположили для упрощения, а вообще-то это могло Лекция 18 Авторизация доступа к данным, управление транзакциями и сессиями Рис. 18.8. Простейший граф идентификаторов пользователя, имен ролей, объектов и привилегий быть и именем роли), создает объект о, становится его владельцем и тем самым обладателем привилегии рг по отношению к этому объекту. Пользователь цзег1О1 предоставляет полномочие рг роли го1е1 (с правом передачи). Затем пользователю цзег1О1 предоставляется роль го1е1 (с правом передачи), и он получает право исполнять эту роль.
От имени роли го1е1 полномочие рг передается пользователю цэег1О2 (с правом передачи), и этот же пользователь получает право исполнять роль го1е1 (с правом передачи). Пользователь цзег1О2 передает роли го1е2 роль го1е1 и полномочие рг (с правом передачи). Наконец, от имени роли го1е2 полномочие рг и сама роль го1е2 передаются пользователю цэег1О1. Попробуйте теперь проследить, как будет выполняться операция ЕДОКЕ рг ОН о ЕЕОМ го1е1 ОАЯОАРЕО Какие узлы и дуги останутся в графе? Задача не очень сложная, но, очевидно, нетривиальная.
И такого рода задачи приходится ежедневно решать администраторам больших и динамических БЯЬ-ориентированных баз данных. Теперь немного поговорим об управлении транзакциями. В стандарте БЯЬ:1999 ничего не говорится о возможной реализации различных уровней изоляции. Конечно, это правильно, поскольку спецификация языка не должна накладывать какие-либо ограничения на реализации.
Но, к сожалению, при использовании Б ~Ь-ориентированной СУБД некоторые знания о реализации механизма транзакций необходимы. Например, предположим, что имеются две транзакции т1 и т2, выполняемые в Основы баэ данных Курс Рис. 18.9. Взаимные «фантомы» режиме изоляции дектльтклвьк. Предположим, что они должны работать по «симметричному» плану, показанному на рис. 18.9. Транзакции работают в наивысшем режиме изолированности. Эффект их выполнения должен быть эквивалентен эффекту некоторого последовательного выполнения транзакций т1 и т2. Но попробуйте придумать какой-либо корректный способ одновременного выполнения этих транзакций, который привел бы к эффекту их последовательного выполнения.
Другими словами, для грамотного использования механизма транзакций на уровне языка 8 И. необходимо знать, каким образом данный механизм реализован в используемой СУБД. И, конечно же, знания о реализации абсолютно необходимы при использовании механизма подключений и сессий. Слишком много в этой части стандарта отдается на волю реализации. Язык баз данных 90Ы объектные расширения Лекция !9 Лекция 19.
Язык баз данных 80~: обьектные расширения В последней лекции этого курса мы кратко изложим суть объектных расширений, которые включены в стандарт БО1л1999. Лекция основана не на официальном тексте стандарта (он очень формален н скучен), а на книге Джима Мелтона «Автапсев БОЬс1999. 1)пвегагапв!пй ОЬ)есг-Ве!айопа1 апй Огйег Анкавсей Реа!нгеа» (Могкап Канйпапп РнЫ!вйега, 2003), которая, по сути, является неформальным описанием семантики (га!!ова)е) соответствующей части языка. В указанной кинге объектным расширениям языка БО1, посвящено более 200 страниц. Естественно, наше изложение будет гораздо более кратким.
Ключевые слова: компания! ВМ, проект 8узтеш К, объектно-реляционный подход к организации систем баз данных, обьектно-реляционные системы управления базами данных (ОРСУБД), СУБД! пйгез, компания Сошршег Аззос!а!ез, СУБД Розгбгсз, СУБД Розгйге8 П., объектно-ориентированные системы управления базами данных (ООСУБД), компания!!!пзгга, СУБД 1!!пзгга, компания 1пюппЫ, ОРСУБД !пропп!х 13п1»егза1 8епег, компания МСС, ООСУБД Опоп, компания ~/и!Я.П., ОРСУБД Оп!9.П, манифест систем объектноориентированных баз данных, манифест систем баз данных следующего поколения, компания Огас!с, ОРСУБД Огас!е8, ОРСУБД 1)В2 $3п!кегза! ОагаЬазе, объектная модель БО)., структурные, определяемые пользователями типы данных (13зег Оейпед Туре, !Л)Т), типизированные таблицы (Турет) ТаЫе), минимальный пакет объектных свойств РКОООб, полный пакет объектных свойств РКО007, индивидуальный тип (б!зг!Лс! гуре), структурный тип (зггпсгцгед !уре), оператор определения ФЛЭТ, оператор Свкдтк турк, наследование структурных типов, максимальный структурный супертип, раздел представления в определении АЗОТ, определение атрибута структурного !Л)Т, метод-наблюдатель (оЬзепег), метод-мутатор (пшгагог), раздел тегетепсе зсоре спеси определения атрибута, инстанциируемый (шзгапйаЫе) структурный тип, нсинстанциируемый (пос шз!апйаЫе) структурный тип, раздел Впа!1!у определения 1ЛЗТ, раздел спецификации ссылочного типа в определении структурного типа, уникальные идентификаторы экземпляров структурного типа, раздел те1 сазс орс(оп в определении структурного типа, раздел сазс орс(оп в определении индивидуального типа, раздел объявления сигнатур методов, первичный метод (оп8!па! ше!Ьок!), подменяющий метод (окепы!Л8 шегьод), метод экземпляра (1нзтлнск), стати- Основы баз данных К с ческий метод (ятлттс), метод-конструктор (сомяткцсток), вызывное имя метода (!птосаЫе пагпе), точное имя метода (зрес!бс пате), характеристика метода (шег)год сйагасгепзйс), характеристика метода рлклмкткк ятукк яск, характеристика метода рлклмкткк ятуьк окмкклк,характеристикаметода рлклмкткк ятукк ялчл,детерминированный (октккмтмтяттс)„ недетерминированный метод (мот октккмтмтяттс), характеристики связи метода с ЯН., характеристикамо яск,характеристика сомтлтмя яск,характеристика кклоя яск олтл, характеристика иооткткя яск олтл, характеристика кктпкм мокк ом мокк тмрот,характеристика слккко ом мпкк тмкцт,определениетипизированнойтаблицы, оператор скклтк тлкьк,наследование типизированныхтаблиц,подтаблица, супертаблица, унаследованные столбцы подтаблицы, заново определенные столбцы подтаблицы, непосредственный супертип, определение элементов типизированной таблицы, максимальная супертаблица, самоссылаюшийся (зе!Бге(егепс!пя) столбец, опции столбцов (со!шпп орйопз), ссылочное значение, ссылочный (ккк) тип, механизмы генерации ссылочных значений, поддержка согласованности ссылок, раздел ясокк, конструкция гегегепсе эсоре сйеск, операция разыменования (дегеГегепс!пя) в ЯЯ.:1999, разрешение ссылки (ге(егепсе гезо!цг!оп) в БО).: 1999, спецификация омку в операциях оккктк и пролтк над типизированными таблицами, ~ипизированные представления, представление, на которое можно ссылаться (ге(егепсеаЫе печг), объектное представление, суперпредставление, подпредставление, непосредственное суперпредставление, непосредственное подпредставление, собственное суперпредставление, собственное подпредставление, семейство подтаблиц, определение типизированного представления, оператор скклтк утки, базисная таблица представления, максимальное суперпредставление.
Введение Как отмечалось в Лекции 1 1, язык Б( Н. появился в середине 1970-х гг. при выполнении экспериментального проекта реляционной СуБд яузгет й. Проект выполнялся в компании 1ВМ, и это вполне естественно, потому что именно сотрудник 1ВМ Эдгар Кодд предложил миру идею реляционных баз данных. От Будет В исходит большинство традиционных средств стандарта Я.Н;.1999 (и Я)1.:2003), которые мы обсуждали в восьми предьц(ущих лекциях. Однако в этой лекции речь пойдет о возможностях современных вариантов БО), которые не имеют отношения к Буз(егп й (за исключением некоторых экспериментов по представлению сложных объектов средствами Я Н.) и, вообше говоря, к реляционной модели данных, а именно — о так Лекция 19 Язык баз данных 80Ц объектные расширения называемых обьектно-реляционных расширениях языка.
Чтобы у читателей не возникло впечатление, по объектные расширения появились в языке БО1 внезапно, благодаря какому-то озарению разработчиков языка, мы начнем зту лекцию с небольшого (и крайне субъективного) очерка истории обьехтно-реляционного подхода к организации систем баз данных. Истоки и краткая история объектно-реляционных баз данных Пальму первенства в области объектно-реляционных систем управления базами данных (ОРСУБД) оспаривают два весьма известных специалиста в области технологии баз данных — Майкл Стоунбрейкер (М!с)зае! БгопеЬга)гег) и Вон Ким (%оп Кпп).
Первые 01зСУБД Майкл Стоунбрейкер начал работать в области баз данных в начале 1970-х гг. прошлого века в университете Беркли. Его первым всемирно известным проектом была реляционная СУБД 1пкгез, которая существует и используется до сих пор в двух ипостасях — как свободно распространяемая система (университетская! пягез; код поддерживается в Беркли) и как коммерческая СУБД, принадлежащая компании Сошрцгег Азьос!агек В исходном варианте СУБД 1пкгез отсутствовала поддержка языка БО( (поддерживался собственный язык запросов ( П.)ЕЕ), но система уже обладала некоторыми уникальными чертами, которые, с небольшой натяжкой, можно было бы назвать обьектными (например, в СУБД 1пягев допускалось определение пользовательских процедур, выполняемых на стороне сервера).