Автоматизированные информационные системы кадастра
Категория реферата: Рефераты по информатике, программированию
Теги реферата: реферат, решебник по алгебре класс
Добавил(а) на сайт: Innokentij.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
FOREIGN KEY (customerid) REFERENCES customer)
В данном примере ограничения NOT NULL, CHECK позволяют задать в таблице ограничения домена. Для определения первичного ключа и задания ограничений целостности таблицы разработчик должен описать целостность таблицы с помощью PRIMARY KEY. Для таблицы customer описывается также ограничение UNIQUE, которое обеспечивает уникальность имен/фамилий покупателей.
Ссылочная целостность: обеспечение синхронизации связанных таблиц.
Ссылочная целостность или целостность отношения - еще одно элементарное правило целостности реляционной модели. Ссылочная целостность определяет соотношения между различными столбцами и таблицами в реляционной базе данных. Такое название она получила, поскольку значения в одном столбце или наборе столбцов ссылаются на значения другого столбца или набора столбцов, либо должны совпадать с ними.
При описании ссылочной целостности встретятся новые термины. Столбец, от которого зависит другая таблица, называется внешним ключем. При этом другая таблица, называется родительским ключем (это должен быть первичный или уникальный ключ). Внешний ключ находится в дочерней или детальной таблице, а родительский ключ - в основной таблице.
Возможность связывать значения в различных таблицах и поддерживать отношения ссылочной целостности - это очень важная характеристика реляционных баз данных. Благодаря возможности связывания таблиц серверы реляционных СУБД могут очень эффективно хранить данные.
В приведенном выше примере с помощью ограничения целостности FOREIGN KEY задается ограничение ссылочной целостности , определяющего для таблицы внешний ключ. С помощью этого мы соединяем таблицу orders с родительской таблицей customer.
Деловые правила: специальные правила целостности данных.
До сих пор это были стандартные правила целостности данных, встроенные в реляционную модель данных. Однако в базе данных каждой организации определяется собственный уникальный набор деловых правил, не менее важных чем стандартный набор правил целостности данных. Например, администратор, отвечающий за вопросы защиты, может запретить изменение таблицы вне обычного рабочего времени либо получать значение столбца, когда пользователь вставляет или обновляет запись.
Для задания специальных правил ORACLE7 предлагает использовать хранимые процедуры или триггеры. Для полного представления о задании специальных правил надо обратиться к справочным материалам.
7.3. Управление доступом к данным в многопользовательской СУБД.
Так как к базе данных должны обращаться много пользователей, то СУБД должна обеспечивать множественный доступ к базе данных. К сожалению, однопользовательские СУБД не подходят для коллективной работы. Рассмотрим проблему взаимного влияния на примере картотеки. Вы хотите использовать ту же информацию с которой в данный момент работает кто-то еще. Если вы хотите увидеть результаты работы другого пользователя, то придется подождать. Если же эти результаты на вашу работу не повлияют, вы можете скопировать данные. Возникает неудобство. Картотека иллюстрирует проблемы параллельного доступа, возникающие при попытке нескольких пользователей одновременно работать с базой данных.
В многопользовательских СУБД говорят о проблеме конкуренции — попытках многих пользователей одновременно выполнять операции с одними и теми же данными. Фактически, задача обеспечения параллельного доступа к данным — одна из наиболее важных и наиболее очевидных задач сервера базы данных. Сервер базы данных должен управлять информацией таким образом, чтобы при сохранении целостности данных пользователи ожидали выполнения работы другими пользователями минимальное время. Если сервер базы не может удовлетворить одну из этих целей, то пользователи сразу заметят последствия. Когда многие транзакции конкурируют за одни и те же данные, то пользователи столкнутся с плохой производительностью или получат неточные результаты.
Это проблемы, но ORACLE7 решает эти проблемы. Рассмотрим как это он делает.
Предотвращение разрушающих взаимных влияний с помощью блокировок данных.
Когда две конкурирующие за одни и те же данные операции вмешиваются в работу друг друга, это может привести к неточным результатам или потере целостности данных. Это называется “ разрушающее взаимное влияние”. Для предотвращения таких ситуаций при одновременном доступе пользователей к данным применяются блокировки. Аналогично тому как “вертушка” в проходной не позволяет проходить через нее одновременно двоим, блокировка данных предотвращает в многопользовательской СУБД разрушающее влияние. Существуют исключающие и разделяемые блокировки.
Заперев ячейку камеры хранения на вокзале, вы получаете на нее исключительное право. Никто не сможет в нее положить, пока вы ее не освободите. Если же вы хотите, чтобы этой ячейкой воспользовался ваш знакомый, то сообщаете шрифт. Аналогично блокирует данные и ORACLE7.
Когда пользователь пытается выполнять операции с данными, с которыми работает кто-то еще, ORACLE7 автоматически их блокирует и предотвращает возможность разрушающего влияния. Если это возможно (то есть не приведет к разрушающему влиянию), всегда использует разделяемую блокировку. Однако, если такая блокировка оставляет возможность разрушающего влияния, устанавливается исключающая блокировка запрашиваемых вашей транзакцией данных. Исключающая блокировка предотвращает возможность блокировать те же данные с помощью блокировки любого типа и за счет устранения параллельного доступа к одним и тем же данным обеспечивает их целостность.
Получение точных данных при высокой степени доступа: запросы, согласованное чтение и поддержка версий.
Предыдущие примеры показывают, как Огасlе7 для одного и того набора данных обрабатывает две различные транзакции обновления. А что происходит в случае запросов, содержащих только операции чтения? Как Огaсlе7 обрабатывает конкурирующие запросы и запросы с операциями обновления, возвращая точные результаты ?
В зтих ситуациях Оraсlе7 использует следующий подход. Во-первых, транзакция не требует блокировки строк для любого типа запросов. Это означает , что две транзакции могут давать одновременно в точности один и тот же запрос без какой-либо конкуренции за один набор строк. Отсутствие блокировок чтения означает также, что такой запрос не может блокировать обновления и наоборот.
Как же Огасlе7 возвращает точные результаты, если он не устанавливает блокировки для запросов? Можно было бы полагать, что без блокировки строки для запросов конкурирующее с запросом обновление может дать для запроса неточный набор результатов.
Огасlе7 может обойтись без блокировок строк для запросов при сохранении точности результатов благодаря механизму выделения версий. Для каждого запроса ORACLE7 возвращает затребованную версию данных на текущий момент времени. На момент получения запросы Огасlе7 обеспечивает согласованность каждой строки в результате запроса.
Сегменты отката.
Используя хранимые в сегментах отката данные, Огасlе7 может создавать для запроса согласованные по чтению копии (наборы результатов) данных. Сегмент отката (или сегмент отмены транзакций) — это область памяти на диске, которую Оraclе7 использует для временного хранения старых значений данных, обновляемых транзакцией удаления или обновления строк. Если пользователь отменяет транзакцию, то Оraclе7 считывает присвоенный транзакции сегмент отката и возвращает измененные ею строки в исходное состояние. Кроме того, Оrасlе7 использует сегмент отката в механизме выделения версий. Если запросу требуются данные, которые в процессе его выполнения изменяются, то Оrасlе7 с помощью данных сегмента отката генерирует согласованный по чтению копию данных (заданный момент времени). Все это происходит автоматически.
При обеспечении параллельного доступа множества пользователей и приложений к одной базе данных при адекватной производительности системы и полной точности разработчики могут не беспокоиться о сложных механизмах блокировки и ведения версий. Однако, если они хотят выжать из производительности приложения все возможное, то Оrасlе7 предусматривает средства управления, переопределяющие применяемые по умолчанию механизмы блокировки.
Обеспечение защиты данных.
Неужели кто угодно может войти в базу данных Оrасlе7 и начать использовать данные, читать табличную информацию и модифицировать ее? Конечно, нет! Если бы это было так, то пользователи могли бы видеть данные, которые для них не предназначаются (такие как заработная плата их начальника), а злоумышленники могли бы легко стереть или изменить данные по своему усмотрению (например, повысить зарплату самим себе). Одной из обязанностей сервера базы данных является обеспечение защиты всей информации СУБД. Независимо от того, хотите или нет защитить свои данные от глаз неуполномоченных пользователей или злоумышленников, защита является важной функцией базы данных. Для обеспечения защиты Оrасlе7 использует систему выборочного управления доступом зто означает, что администратор присваивает пропуска для всех зарегистрированных в базе данных пользователей и дает им полномочия на выполнение в базе данных конкретных операций с конкретными данными. Различные методы управления защитой Оraclе7 описываются в следующих разделах.
Предоставление пользователям доступа к базе данных.
Доступ к базе данных Огасlе7 очень напоминает доступ к телефонной банковской системе. Во-первых, вам нужно получить общий доступ к базе данных. Чтобы предоставить кому-либо доступ к базе данных Оraclе7, администратор должен зарегистрировать его и создать в базе данных нового пользователя (определив его имя). Для обеспечения защиты доступа пароль должен соответствовать имени этого нового пользователя. Для подключения к базе данных пользователь должен ввести и имя, и пароль. Нового пользователя создает, например, следующий оператор SQL:
CREATE USER safеdorow IDENTIFID BY p1e
Как показывает этот пример, администраторам следует выбирать осмысленные имена пользователей (например, объединив имя и фамилию). Однако пользователи должны выбирать сложные и не несущие никакого смысла пароли. Это затруднит их определение злоумышленниками.
После получения пользователем доступа к базе данных Оraclе7 операции его в этой СУБД ограничивают другие средства контроля доступа.
Расширение и ограничение полномочий.
Как и в случае круглосуточной телефонной банковской системы, вы можете выполнять лишь ограниченные операции. Например, вы можете проверить свой чековый и накопительный счет, но не можете сделать это для счетов других пользователей. То есть вы имеете полномочия только на просмотр информации, относящейся к вашим счетам.
Система защиты Оraclе7 очень напоминает защиту телефонной банковской системы. Администратор может управлять всеми операциями с базой данных и доступом к данным, в том числе тем, какие пользователи могут создавать таблицы и представления, какие—создавать и модифицировать табличные области, а какие — считывать и модифицировать различные таблицы и представления базы данных. Это делается путем предоставления и отмены различных полномочий или прав доступа. Приведем примеры применяемых для этого команд SQL GRANT и REVOKE:
GRANT CREATE SESSION, CREATE TABLE TO safd
Рекомендуем скачать другие рефераты по теме: сочинение сказка, 2 класс изложение.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата