Тема_8 (1122356), страница 2
Текст из файла (страница 2)
Кузнецов. Базы данных.18 Организация данныхОсновные понятия, цели и общая организация System R (14)Цели System R и их связь с общей организацией системы (9)Язык SQL содержит средства определения представленийПредставление – это каталогизированный именованный запрос навыборку данных (из одной или нескольких таблиц)Поскольку SQL – это «реляционный» язык, результатом выполнениялюбого запроса на выборку является таблица, и поэтому концептуальноможно относиться к любому представлению как к таблицеВ языке допускается использование ранее определенныхпредставлений практически везде, где допускается использованиетаблицпри определении представления можно, в частности, присвоить имена полямэтой таблицыс некоторыми ограничениями по поводу возможностей модификации черезпредставленияНаличие возможности определять представления в совокупности сразвитой системой авторизации позволяет ограничить доступнекоторых пользователей к базе данных выделенным наборомпредставлений12.11.2009С.Д.
Кузнецов. Базы данных.19 Организация данныхОсновные понятия, цели и общая организация System R (15)Цели System R и их связь с общей организацией системы (10)Авторизация доступа к базе данных также основана на средствах SQLПри создании любого объекта базы данных пользователь,выполняющий эту операцию, становится полновластным владельцемэтого объекта, т.е.может выполнять по отношению к этому объекту любую допустимуюоперацию SQLДалее этот пользователь может выполнить оператор SQL,означающий передачу всех его прав на этот объект (или ихподмножества) любому другому пользователюВ частности, этому пользователю может быть передано право напередачу всех переданных ему прав (или их части) третьемупользователю и т.д.Одним из прав пользователя по отношению к объекту является правона изъятие у других пользователей всех или некоторых прав, которыеранее им были переданыЭта операция распространяется транзитивно на всех дальнейшихнаследников этих прав12.11.2009С.Д. Кузнецов.
Базы данных.20 Организация данныхОсновные понятия, цели и общая организация System R (16)Цели System R и их связь с общей организацией системы (11)Наличие в языке средств определения представлений иавторизации в принципе позволяет обойтись приэксплуатации System R без традиционного администраторабаз данных, поскольку практически все системные действияпроизводятся на основе средств SQL Тем не менее, если организационно администратор базданных требуется, то его работа достаточно упрощается засчет унифицированного набора средств управления Кроме того, в System R каталоги баз данных поддерживаютсятакже в виде таблиц, и к ним применены все запросы языкаSQLЗаметим, что в более поздних SQL-ориентированных СУБДпоявился ряд дополнительных утилит, не связанных сязыком SQL (например, утилиты сбора статистики илимассовой загрузки базы данных), и в этих системах, видимо,без администратора базы данных не обойтись12.11.2009С.Д.
Кузнецов. Базы данных.21 Организация данныхОсновные понятия, цели и общая организация System R (17)Цели System R и их связь с общей организацией системы (12)Что касается обеспечения параллельной работы многихпользователей с одной базой данных, основной подход System Rсостоит в том, чтопользователь не обязан знать о наличии других пользователей,конкурирующих с ним за доступ к базе данных, т.е.система ответственна за обеспечение изолированности пользователейс гарантией отсутствия их взаимного влияния в пределах транзакцийИз этого следует,во-первых, что в интерфейсе пользователя с системой (т.е.
в языкеSQL) не должно быть средств регулирования взаимодействий с другимипользователями и,во-вторых, что система должна обеспечить автоматическуюсериализацию набора транзакций, т.е.обеспечить режим выполнения этого набора транзакций, эквивалентный поконечному результату некоторому последовательному выполнению этихтранзакцийэта проблема решается в System R за счет автоматического выполнениясинхронизационных блокировок всех изменяемых объектов базы данных12.11.2009С.Д. Кузнецов. Базы данных.22 Организация данныхОсновные понятия, цели и общая организация System R (18)Цели System R и их связь с общей организацией системы (13)Одним из основных требований к СУБД вообще и к System R, вчастности, является обеспечение надежности баз данных поотношению к различного рода сбоямК таким сбоям могут относиться программные ошибки прикладногои системного уровня, сбои процессора, поломки внешнихносителей и т.д.В частности, к одному из видов сбоев можно отнестиупоминавшиеся выше нарушения целостности базы данных, иавтоматический инициируемый системой откат транзакции – этосистемное средство восстановления базы данных после сбоев такогородакак уже отмечалось, такое восстановление происходит путем обратноговыполнения транзакции на основе информации о внесенных еюизменениях, запомненной в журналеНа информации журнала также основано восстановление базыданных и после сбоев другого рода12.11.2009С.Д.
Кузнецов. Базы данных.23 Организация данныхОсновные понятия, цели и общая организация System R (19)Цели System R и их связь с общей организацией системы (14)Что касается естественных требований к эффективности системы,то здесь основные решения связанысо спецификой физической организации баз данных на внешнейпамяти,использованием техники индексированного доступа к данным,буферизацией используемых страниц базы данных в основной памяти иразвитой техникой оптимизации SQL-запросов, производимой на стадииих компиляцииСтруктурная организация System R согласуется с поставленнымипри ее разработке целями и выбранными решениямиОсновными структурными компонентами System R являютсясистема управления реляционными данными (Relational DataSystem – RDS), состоящая, по существу,из компилятора языка SQL и подсистемы поддержкиоткомпилированных операторов, исистемы управления реляционной памятью (Relational Storage System –RSS)12.11.2009С.Д.
Кузнецов. Базы данных.24 Организация данныхОсновные понятия, цели и общая организация System R (20)Цели System R и их связь с общей организацией системы (15)RSS обеспечивает интерфейс довольно низкого, нодостаточного для реализации SQL уровня для доступа кхранимым в базе данным этот внутренний интерфейс System R напоминает внешнийинтерфейс систем, основанных на модели инвертированныхтаблицСинхронизация транзакций, журнализация изменений ивосстановление баз данных после сбоев также относятся кчислу функций RSS.Компилятор запросов использует интерфейс RSS для доступа к разнообразнойсправочной информации (каталоги таблиц, индексов, правдоступа, условий целостности, условных воздействий и т.д.)и производит рабочие программы, выполняемые вдальнейшем также с использованием интерфейса RSS12.11.2009С.Д.
Кузнецов. Базы данных.25 Организация данныхОсновные понятия, цели и общая организация System R (21)Цели System R и их связь с общей организацией системы (16)Таким образом, система естественноразделяется на два уровняуровень управления памятью исинхронизацией, фактически, не зависящий отбазового языка запросов системы, иязыковый уровень (уровень SQL), на которомрешается большинство проблем System RЗаметим, что эта независимость скорееусловная, чем абсолютная:язык SQL можно в принципе заменить какимлибо другим языком, но он должен обладатьпримерно такой же семантикой12.11.2009С.Д. Кузнецов. Базы данных.26 Организация данныхОсновные понятия, цели и общая организация System R (22)Организация внешней памяти в базах данных System R (1)Как уже говорилось, база данных System R располагается водном или нескольких сегментах внешней памятиКаждый сегмент состоит из страниц данных и странициндексной информацииРазмер страницы данных в сегменте может быть выбранравным либо 4, либо 32 килобайтам; размер страницы индексной информации равен 512 байтамКроме того, при работе RSS поддерживаетсядополнительный набор данных для ведения журнала Для повышения надежности журнала этот набор данныхдублируется на двух внешних носителях12.11.2009С.Д.
Кузнецов. Базы данных.27 Организация данныхОсновные понятия, цели и общая организация System R (23)Организация внешней памяти в базах данных System R (2) Страницы данных (1) В каждой странице данных хранятся кортежи одного или нескольких таблиц Фундаментальным понятием RSS является идентификатор кортежа (tupleidentifier – tid) Гарантируется неизменяемость tid'а во все время существования кортежа вбазе данных независимо от перемещений кортежа внутри страницы и дажепри перемещении кортежа в другую страницу12.11.2009С.Д. Кузнецов.
Базы данных.28 Организация данныхОсновные понятия, цели и общая организация System R (24)Организация внешней памяти в базах данных System R (3) Страницы данных (2) Потребность в перемещении кортежей возникает по той причине, чтокортеж, занесенный в некоторую таблицу базы данных, вообще говоря, вовремя своего существования может увеличиваться в размерах если к этой таблице добавляется новое поле, или если в ней имеется хотя бы одно поле, типом данных которогоявляются строки символов переменного размера12.11.2009С.Д. Кузнецов. Базы данных.29 Организация данныхОсновные понятия, цели и общая организация System R (25)Организация внешней памяти в базах данных System R (4) Страницы данных (3) Реально tid представляет собой пару <номер страницы, индексописателя кортежа в странице> При этом кортеж может реально располагаться в данной странице (рис.слева) или в другой странице (рис. справа)12.11.2009С.Д.
Кузнецов. Базы данных.30 Организация данныхОсновные понятия, цели и общая организация System R (26)Организация внешней памяти в базах данных System R (5) Страницы данных (4) Как показывает рис. слева, в каждой странице данных имеются двеобласти: область хранения описателей кортежей и область хранения самих кортежей Обе эти области являются динамическими, т.е. в странице данныхзаранее не резервируется место под описатели кортежей12.11.2009С.Д. Кузнецов. Базы данных.31 Организация данныхОсновные понятия, цели и общая организация System R (27)Организация внешней памяти в базах данных System R (6) Страницы данных (5) Выделение фиксированной части страницы данных под описатели кортежей(вмещающей, скажем, k описателей) потенциально привело бы к потерипамяти в этой странице, поскольку при размещении в ней k кортежей оченьмаленького размера пропадало бы место в области хранения кортежей, а приразмещении p<k крупных кортежей полностью заполнялась бы областьхранения кортежей, но пропадало бы место в области описателей12.11.2009С.Д.
Кузнецов. Базы данных.32 Организация данныхОсновные понятия, цели и общая организация System R (28)Организация внешней памяти в базах данных System R (7) Страницы данных (6) Для динамического распределения памяти внутри страницыпамять под описатели кортежей выделяется вниз от начала страницы,а память для хранения кортежей – вверх от конца страницы12.11.2009С.Д. Кузнецов. Базы данных.33 Организация данныхОсновные понятия, цели и общая организация System R (29)Организация внешней памяти в базах данных System R (8) Страницы данных (7) Второй вариант хранения кортежей возникает в том случае, когданекоторый кортеж после своего создания был размещен системой в странице с номером N,а после обновления с увеличением размера перестал помещаться в этойстранице, и система была вынуждена разместить его в странице с номером M12.11.2009С.Д.