Схемы используются в модели безопасности компонента Database Engine для упрощения взаимоотношений между пользователями и объектами, и, следовательно, схемы имеют очень большое влияние на взаимодействие пользователя с компонентом Database Engine. В этом разделе рассматривается роль схем в безопасности компонента Database Engine. В первом подразделе описывается взаимодействие между схемами и пользователями, а во втором обсуждаются все три инструкции языка Transact-SQL, применяемые для создания и модификации схем.

Разделение пользователей и схем

Схема - это коллекция объектов базы данных, имеющая одного владельца и формирующая одно пространство имен. (Две таблицы в одной и той же схеме не могут иметь одно и то же имя.) Компонент Database Engine поддерживает именованные схемы с использованием понятия принципала (principal). Как уже упоминалось, принципалом может быть индивидуальный принципал и групповой принципал.

Индивидуальный принципал представляет одного пользователя, например, в виде регистрационного имени или учетной записи пользователя Windows. Групповым принципалом может быть группа пользователей, например, роль или группа Windows. Принципалы владеют схемами, но владение схемой может быть с легкостью передано другому принципалу без изменения имени схемы.

Отделение пользователей базы данных от схем дает значительные преимущества, такие как:

    один принципал может быть владельцем нескольких схем;

    несколько индивидуальных принципалов могут владеть одной схемой посредством членства в ролях или группах Windows;

    удаление пользователя базы данных не требует переименования объектов, содержащихся в схеме этого пользователя.

Каждая база данных имеет схему по умолчанию, которая используется для определения имен объектов, ссылки на которые делаются без указания их полных уточненных имен. В схеме по умолчанию указывается первая схема, в которой сервер базы данных будет выполнять поиск для разрешения имен объектов. Для настройки и изменения схемы по умолчанию применяется параметр DEFAULT_SCHEMA инструкции CREATE USER или ALTER USER. Если схема по умолчанию DEFAULT_SCHEMA не определена, в качестве схемы по умолчанию пользователю базы данных назначается схема dbo .

Инструкция CREATE SCHEMA

В примере ниже показано создание схемы и ее использование для управления безопасностью базы данных. Прежде чем выполнять этот пример, необходимо создать пользователей базы данных Alex и Vasya, как будет описано в следующей статье (вы можете вернуться к этим примерам позже).

USE SampleDb; GO CREATE SCHEMA poco AUTHORIZATION Vasya GO CREATE TABLE Product (Number CHAR(10) NOT NULL UNIQUE, Name CHAR(20) NULL, Price MONEY NULL); GO CREATE VIEW view_Product AS SELECT Number, Name FROM Product; GO GRANT SELECT TO Alex; DENY UPDATE TO Alex;

В этом примере создается схема poco, содержащая таблицу Product и представление view_Product. Пользователь базы данных Vasya является принципалом уровня базы данных, а также владельцем схемы. (Владелец схемы указывается посредством параметра AUTHORIZATION . Принципал может быть владельцем других схем и не может использовать текущую схему в качестве схемы по умолчанию.)

Две другие инструкции, применяемые для работы с разрешениями для объектов базы данных, GRANT и DENY, подробно рассматриваются позже. В этом примере инструкция GRANT предоставляет инструкции SELECT разрешения для всех создаваемых в схеме объектов, тогда как инструкция DENY запрещает инструкции UPDATE разрешения для всех объектов схемы.

С помощью инструкции CREATE SCHEMA можно создать схему, сформировать содержащиеся в этой схеме таблицы и представления, а также предоставить, запретить или удалить разрешения на защищаемый объект. Как упоминалось ранее, защищаемые объекты - это ресурсы, доступ к которым регулируется системой авторизации SQL Server. Существует три основные области защищаемых объектов: сервер, база данных и схема, которые содержат другие защищаемые объекты, такие как регистрационные имена, пользователи базы данных, таблицы и хранимые процедуры.

Инструкция CREATE SCHEMA является атомарной. Иными словами, если в процессе выполнения этой инструкции происходит ошибка, не выполняется ни одна из содержащихся в ней подынструкций.

Порядок указания создаваемых в инструкции CREATE SCHEMA объектов базы данных может быть произвольным, с одним исключением: представление, которое ссылается на другое представление, должно быть указано после представления, на которое оно ссылается.

Принципалом уровня базы данных может быть пользователь базы данных, роль или роль приложения. (Роли и роли приложения рассматриваются в одной из следующих статей.) Принципал, указанный в предложении AUTHORIZATION инструкции CREATE SCHEMA, является владельцем всех объектов, созданных в этой схеме. Владение содержащихся в схеме объектов можно передавать любому принципалу уровня базы данных посредством инструкции ALTER AUTHORIZATION .

Для исполнения инструкции CREATE SCHEMA пользователь должен обладать правами базы данных CREATE SCHEMA. Кроме этого, для создания объектов, указанных в инструкции CREATE SCHEMA, пользователь должен иметь соответствующие разрешения CREATE.

Инструкция ALTER SCHEMA

Инструкция ALTER SCHEMA перемещает объекты между разными схемами одной и той же базы данных. Инструкция ALTER SCHEMA имеет следующий синтаксис.

Схема как структура базы данных

Основными объектами схемы являются таблицы и связи.

Схема как объект базы данных

Есть и другое понятие схемы в теории баз данных.

В Oracle она привязывается только к одному пользователю (USER) и является логическим набором объектов базы данных. Схема создается при создании пользователем первого объекта, и все последующие объекты созданные этим пользователем становятся частью этой схемы.

Она может включать другие объекты, принадлежащие этому пользователю:

  • таблицы,
  • последовательности,
  • хранимые программы,
  • кластеры,
  • связи баз данных,
  • триггеры,
  • библиотеки внешних процедур,
  • индексы,
  • пакеты,
  • хранимые функции и процедуры,
  • синонимы,
  • представления,
  • снимки,
  • объектные таблицы,
  • объектные типы,
  • объектные представления.

Существуют и подобъекты схемы, такие как:

  • столбцы: таблиц и представлений,
  • секции таблиц,
  • ограничения целостности,
  • триггеры,
  • пакетные процедуры и функции и другие элементы, хранимые в пакетах (курсоры, типы и т. п).

Существуют объекты не зависимые от схемы

  • каталоги,
  • профили,
  • роли,
  • сегменты,
  • табличные области
  • пользователи.

Уровни схемы базы данных

  • Концептуальная схема - карта концепций и их связей
  • Логическая схема - карта сущностей и их атрибутов и связей
  • Физическая схема - частичная реализация логической схемы
  • Схема объекта - объект БД Oracle

Примечания

См. также

  • Моделирование данных

Wikimedia Foundation . 2010 .

Смотреть что такое "Схема базы данных" в других словарях:

    Схема базы данных - 53. Схема базы данных Data base scheme Описание базы данных в контексте конкретной модели данных Источник: ГОСТ 20886 85: Организация данных в системах обработки данных. Термины и определения …

    концептуальная схема базы данных - концептуальная схема Схема базы данных, определяющая представление базы данных, единое для всех ее приложений и не зависящее от используемого в системе управления этой базой данных представления данных в среде хранения и путей доступа к ним.… …

    Концептуальная схема базы данных - 56. Концептуальная схема базы данных Концептуальная схема Conceptual scheme Схема базы данных, определяющая представление базы данных, единое для всех ее приложений и не зависящее от используемого в системе управления этой базой данных… … Словарь-справочник терминов нормативно-технической документации

    внешняя схема базы данных - внешняя схема Схема базы данных, поддерживаемая системой управления базы данных для приложений. [ГОСТ 20886 85] Тематики организация данных в сист. обраб. данных Синонимы внешняя схема EN external scheme … Справочник технического переводчика

    Внешняя схема базы данных - 54. Внешняя схема базы данных Внешняя схема External scheme Схема базы данных, поддерживаемая системой управления базы данных для приложений Источник: ГОСТ 20886 85: Организация данных в системах обработки данных. Термины и определения … Словарь-справочник терминов нормативно-технической документации

    внутренняя схема базы данных - внутренняя схема Схема базы данных, определяющая представление данных в среде хранения и пути доступа к ним. [ГОСТ 20886 85] Тематики организация данных в сист. обраб. данных Синонимы внутренняя схема EN internal scheme … Справочник технического переводчика

    Внутренняя схема базы данных - 55. Внутренняя схема базы данных Внутренняя схема Internal scheme Схема базы данных, определяющая представление данных в среде хранения и пути доступа к ним Источник: ГОСТ 20886 85: Организация данных в системах обработки данных. Термины и… … Словарь-справочник терминов нормативно-технической документации

    Распределённые базы данных (РБД) совокупность логически взаимосвязанных баз данных, распределённых в компьютерной сети. Основные принципы РБД состоит из набора узлов, связанных коммуникационной сетью, в которой: а)каждый узел это полноценная СУБД … Википедия

    В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия

    Логическая схема модель данных специфической области вопросов, выраженная в понятиях технологии управления данными. Не будучи продуктом исключительно теории управления базами данных, она оперирует терминами и понятиями или реляционных таблиц и… … Википедия

Книги

  • Логическое проектирование баз данных , Е. А. Морозов. Работа посвящена проблеме проектирования баз данных. Рассматривается одна из стадий ироектирования, а именно стадия логического проектирования, в ходе исполпениякоторой разрабатывается схема…

ВВЕДЕНИЕ

Информационная система (ИС) - это система обработки данных какой-либо предметной области со средствами накопления, хранения, обработки, преобразования, передачи, обновления информации с использованием компьютерной и другой техники. В ИС выполняются следующие процессы:

Ввод информации из внешних и внутренних источников;

Обработка входящей информации;

Хранение информации для последующего ее использования;

Вывод информации в удобном для пользователя виде .

Основа ИС, объект ее обработки - база данных (БД). База данных - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области или разделе предметной области. Таким образом, БД выполняет функцию хранения информации в ИС.

В офисе хранение актуальной информации играет ключевую роль в эффективной работе его сотрудников. Штату необходимо быстро выполнять запросы начальства (например, помощь в поиске документов по типам или работниками), поэтому в БД должна содержатьсяследующая информация:

Информация о работниках;

Информация об организации;

Информация о документах;

Для работы необходим удобный пользовательский интерфейс, который обеспечивает представление, добавление и редактирование данных.

СТРУКТУРА БАЗЫ ДАНЫХ

информационный система интерфейс сервер

Логическая модель БД описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью без учета её реализации в конкретной СУБД .

Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь).

На рисунке 1 представлена логическая схема базы данных предметной области «Офис». На логической схеме изображены следующие сущности: Organization, Employee, Job_Title, Document, Document_type. Описание сущностей содержится в таблице 1.

Рисунок 1 - Логическая схема БД

Таблица 1 - Описание сущностей логической модели данных

Название

Назначение

Описывает работников находящихся в штате организации. Содержит атрибуты: ФИО, занимаемая должность и организация в штате которой состоит. Связана связью «один к одному» с сущностью «JobTitle» .

Описывает организацию в которой работают сотрудники. Содержит атрибуты: название, адрес. Связана связью «один к одному» с сущностью «Employee».

Справочник должностей. Содержит атрибут: должность (название должности).

Описывает все документы и кто из работников над ними работает. Содержит атрибуты: название, тип документа, работник. Связана связью «один к одному» с сущностью Employee и связью «один к одному» с сущностью DocumentType.

Справочник типов документов. Содержит атрибут тип документа.

Физическая модель данных оперирует категориями, касающимися организации внешней памяти и структур хранения, используемых в данной операционной среде . В настоящий момент в качестве физических моделей используются различные методы размещения данных, основанные на файловых структурах: это организация файлов прямого и последовательного доступа, индексных файлов и инвертированных списков.

На рисунке 2 представлена физическая схема БД. На схеме изображены сущности, а также указаны типы данных. Так как сущности «Document_type» и «Employee» связаны с сущностью «Document» связью «один к одному», в физической схеме добавляются сущности-связки «Document_typeDocument»и «EmployeeDocument». Сущности-связки содержат внешние ключи, обеспечивающие вид связи «один к одному».

Рисунок 2 - Физическая схема БД

Таблицы в программе Access 2007 представляют связанную систему. Объединение позволяет вести обработку данных из нескольких таблиц. Для обработки формируются запросы – таблицы, в которых сведения из одной или нескольких таблиц сгруппированы нужным образом, иногда с производством необходимых вычислений. Запросы мы рассмотрим в последующих главах, а здесь поговорим о связях между таблицами.

Схема данных задаёт структуру базы данных. В ней представляются и запоминаются связи между таблицами. Эти связи используются при конструировании запросов и отчётов на основе нескольких таблиц. Схема данных отображает связи графически. Таблицы на схеме представлены в виде прямоугольников со списками полей. Если полей слишком много и они не помещаются в прямоугольник, то автоматически с правой стороны прямоугольника образуется полоса прокрутки , с помощью которой можно просмотреть весь список. Схема данных , используемая в нашей работе, представлена на рис. 6.10.

Рис. 2.11 Виды связей между таблицами: а) один-к-одному, б) один-ко-многим и в) многие-ко-многим

Связи в Access 2007 встречаются трёх видов: а) один-к-одному, б) один-ко-многим и в) многие-ко-многим, как это показано на рис. 2.11. Первый вид связи показывает, что одной записи в Таблице1 соответствует одна же запись в Таблице2 . Такой способ связи применяют, например, для двух таблиц, сделанных из одной, чтобы таблицы не были слишком громоздкими. Тогда Таблица2 – просто продолжение Таблицы1 . Чаще других встречаются связи один-ко-многим. Например, на одной кафедре работает много преподавателей. Поэтому между таблицами Кафедры и Преподаватели устанавливается именно такая связь.

Рис. 2.12 Вкладка Работа с базами данных

Связь типа многие-ко-многим в программе Access 2007 прямо не осуществляется. Чтобы создать такую связь, надо вставить промежуточную таблицу. Например, в нашей базе данных (рис. 6.10) предусмотрена промежуточная таблица Заказано , поскольку между таблицами Клиенты и Товары существует связь многие-ко-многим . Таблица Заказано позволяет избежать такой связи, которая в Access 2007 напрямую не осуществима.

Техника установления связи между таблицами включает в себя три действия: 1) вызов Схемы данных – окна, в котором и будет изображена схема, 2) добавление в окно схемы тех таблиц, между которыми надо установить связи и 3) протягивание связей между таблицами с приданием им необходимых свойств. Рассмотрим эти действия подробно.

Рис. 2.13 Диалоговое окно Добавление таблицы

Схему данных можно вызвать, когда нужные таблицы уже созданы. Для её вызова надо щёлкнуть по кнопке Схема данных на ленте вкладки Работа с базами данных (рис. 2.12). Появится окно Схема данных , пока пустое, и диалоговое окно Добавление таблицы , которое видно на рис. 2.13. С помощью окна Добавление таблицы в окно Схема данных помещают необходимые таблицы.

Рис. 2.14 Контекстное меню, вызванное правой кнопкой мыши, внутри окна Схема данных

Если по каким-то причинам окно Добавление таблицы не появилось, то надо щёлкнуть правой кнопкой в любом месте окна Схема данных . Появится контекстное меню (рис. 2.14). В нём надо щёлкнуть по надписи Добавить таблицу . Появится диалоговое окно Добавление таблицы , которое видно на рис. 2.13.

С появлением диалогового окна Добавление таблицы можно перенести внутрь окна Схема данных нужные таблицы. Мы ограничимся двумя таблицами: Кафедры и Преподаватели . Названия этих таблиц надо выделить, как показано на рис. 2.13, а потом сразу же щёлкнуть по кнопке Добавить . Точно так же поступают и с другими таблицами, которые надо поместить в Схему данных . Окно Добавление таблицы после добавления нужных таблиц следует закрыть. В нашем примере прямоугольники, обозначающие обе нужные нам таблицы, появятся в Схеме данных , как это видно на рис. 2.15.

Обозначения таблиц внутри окна Схема данных содержат список всех полей данной таблицы, причём слева от имени ключевого поля (или ключевых, если их несколько) расположен значок ключ. Обозначения таблиц можно передвигать мышью, ухватив за заголовок таблицы. Можно изменять и размеры прямоугольников, обозначающих таблицы. Для этого надо подвести указатель мыши к одной из границ прямоугольника. Появится двунаправленная стрелка: . Захватив такую стрелку мышью, можно передвинуть границу прямоугольника в любое место, тем самым, изменив его размер.

Рис. 2.15 Законченная Схема данных со связью между таблицами

Когда прямоугольники обозначений таблиц размещены внутри окна Схемы данных , можно приступить к установлению связей между таблицами. Связывают одноимённые поля. В одной из таблиц используют для связи обычно ключевое поле. Та таблица, у которой поле связи ключевое, считается главной. С её стороны связь обозначена 1 . Со стороны связаной таблицы связь обозначена ¥ . Так устанавливается связь Один-ко-многим .

Рис. 2.16 Диалоговое окно Изменение связей

Техника соединения таблиц связями проста: надо щёлкнуть соединяемое поле главной таблицы. Оно выделится. Не отпуская кнопку мыши, надо вести линию к одноимённому полю вспомогательной таблицы. Соединения сначала не произойдёт, а возникнет диалоговое окно Изменение связей (рис. 2.16). Окно помогает утвердить характер связи и настроить целостность данных обеих таблиц. В окне надо убедиться, что связь произошла по одноимённым полям, а затем щёлкнуть по окошечку надписи . В окошечке появится флажок: ü. После этого надо такие же флажки выставить ещё в двух окошечках, находящихся ниже. Таким образом, задаются свойства связи. Свойство Обеспечение целостности данных означает, что удалять данные из ключевого поля главной таблицы нельзя. А свойства Каскадное обновление связанных полей и Каскадной удаление связанных записей – соответственно, что операции редактирования и удаления данных в ключевом поле главной таблицы разрешены, но сопровождаются автоматическим изменениями в связанной таблице. Завершается создание связи щелчком по кнопке [Создать] . Нужная связь появится (рис. 2.15).

Стоит заметить, что в случае, если невозможно осуществить связь с обеспечением целостности данных, например, если проведена связь между полями с различной информацией, появляется окно, изображенное на рис. 2.17.

Рис. 2.17 Окно с предупреждением о невозможности создания связи


Реляционная база данных, созданная в соответствии с проектом канонической модели данных предметной области, состоит из нормализованных таблиц, связанных одно-многозначными отношениями. В такой базе данных обеспечивается отсутствие дублирования описательных данных, их однократный ввод, поддержание целостности данных средствами системы. Связи между таблицами позволяют выполнить объединение данных различных таблиц, необходимое для решения большинства задач ввода, просмотра и корректировки данных, получения информации по запросам и вывода отчетов.

Связи между таблицами устанавливаются в соответствии с проектом логической структуры базы данных и запоминаются в схеме данных Access. Схема данных в Access является не только средством графического отображения логической структуры базы данных, она активно используется системой в процессе обработки данных. Создание схемы данных позволяет упростить конструирование многотабличных форм, запросов, отчетов, а также обеспечить поддержание целостности взаимосвязанных данных при вводе и корректировке данных в таблицах.

Создание схемы данных

Создание схемы данных начинается с выполнения команды Схема данных (Relationships) в группе Отношения (Relationships) на вкладке ленты Работа с базами данных (Database Tools). В результате выполнения этой команды открывается окно схемы данных и диалоговое окно Добавление таблицы (Show Table), в котором осуществляется выбор таблиц, включаемых в схему (см. рис. 3.48). Диалоговое окно Добавление таблицы откроется автоматически, если в базе данных еще не определена ни одна связь. Если окно не открылось, на ленте Работа со связями | Конструктор (Relationship Tools | Design) в группе Связи (Relationships) нажмите кнопку Отобразить таблицу (Show Table).

Включение таблиц в схему данных

В окне Добавление таблицы (Show Table) (рис. 3.48) отображены все таблицы и запросы, содержащиеся в базе данных. Выберем вкладку Таблицы (Tables) и с помощью кнопки Добавить (Add) разместим в окне Схема данных (Relationships) все ранее созданные таблицы базы данных Поставка товаров, отображенные в окне Добавление таблицы (Show Table). Затем нажмем кнопку Закрыть (Close). В результате в окне Схема данных (Relationships) таблицы базы будут представлены окнами со списками своих полей и выделенными жирным шрифтом ключами (см. рис. 3.52).

Создание связей между таблицами схемы данных

При создании связей в схеме данных используется проект логической структуры реляционной базы данных, в котором показаны все одно-многозначные связи таблиц. Реализуются связи с помощью добавления в связанные таблицы общих полей, называемых ключом связи . При одно-многозначных отношениях между таблицами ключом связи является ключ главной таблицы (простой или составной). В подчиненной таблице он может быть частью уникального ключа или вовсе не входить в состав ключа таблицы. Одно-многозначные связи являются основными в реляционных базах данных. Одно-однозначные связи используются, как правило, при необходимости распределять большое количество полей, определяемых одним и тем же ключом, по разным таблицам, имеющим разный регламент обслуживания.

Создание связей по простому ключу

Установим связь между таблицами ПОКУПАТЕЛЬ и ДОГОВОР, которые находятся в отношении «один-ко-многим». Устанавливая связи между парой таблиц, находящихся в отношении типа 1: M, выделим в главной таблице ПОКУПАТЕЛЬ ключевое поле КОД_ПОК, по которому устанавливается связь. Далее при нажатой кнопке мыши перетащим его в соответствующее поле подчиненной таблицы ДОГОВОР.

Поскольку поле связи является уникальным ключом в главной таблице связи, а в подчиненной таблице связи не является ключевым, схема данных в Access выявляет отношение «один-ко-многим» между записями этих таблиц. Значение «один-ко-многим» (One-To-Many) отобразится в окне Изменение связей (Edit Relationships) в строке Тип отношения (Relationship Type) (рис. 3.49).

ЗАМЕЧАНИЕ
Если поле связи является уникальным ключом в обеих связываемых таблицах, схема данных в Access выявляет отношение «один-к-одному «. Если для связи таблиц вместо ключевого поля главной таблицы используется некоторый уникальный индекс, система также констатирует отношение таблиц как 1: М или 1: 1.

Определение связей по составному ключу

Определим связи между таблицами НАКЛАДНАЯ ОТГРУЗКА, которые связаны по составному ключу НОМ_НАКЛ + КОД_СК. Для этого в главной таблице НАКЛАДНАЯ выделим оба этих поля, нажав клавишу , и перетащим их в подчиненную таблицу ОТГРУЗКА.

В окне Изменение связей (Edit Relationships) (рис. 3.50) для каждого поля составного ключа главной таблицы НАКЛАДНАЯ, названной Таблица/запрос (Table/Query), выберем соответствующее поле подчиненной таблицы ОТГРУЗКА, названной Связанная таблица/запрос (Related Table/Query).

Каскадное обновление и удаление связанных записей

Если для выбранной связи обеспечивается поддержание целостности, можно задать режим каскадного удаления связанных записей и режим каскадного обновления связанных полей. Такие параметры делают возможным в главной таблице, соответственно, удаление записей и изменение значения в ключевом поле, т. к. при этих параметрах система автоматически выполнит необходимые изменения в подчиненных таблицах, обеспечив сохранение свойств целостности базы данных.

В режиме каскадного удаления связанных записей при удалении записи из главной таблицы будут автоматически удаляться все связанные записи в подчиненных таблицах. При удалении записи из главной таблицы выполняется каскадное удаление подчиненных записей на всех уровнях, если этот режим задан на каждом уровне.

В режиме каскадного обновления связанных полей при изменении значения ключевого поля в записи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях.

Установить в окне Изменение связей (Edit Relationships) (см. рис. 3.49) флажки каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records) можно только после задания параметра обеспечения целостности данных.

После создания связей изображения таблиц могут перемещаться в пределах рабочего пространства окна схемы данных. Перемещения и изменения размеров окон со списками полей таблиц в окне схемы данных осуществляются принятыми в Windows способами.

Заметим, если каскадное удаление не разрешено, невозможно удалить запись в главной таблице, если имеются связанные с ней записи в подчиненной.
Смотрим видео:

Вот основное, что мы хотели рассказать на тему «Схема данных в Access».