Схема базы данных включает в себя описание содержания, структуры и ограничений целостности, используемые для создания и поддержки базы данных[1].
Постоянные данные в среде базы данных включают в себя схему и базу данных. Система управления базами данных (СУБД) использует определения данных в схеме для обеспечения доступа и управления доступом к данным в базе данных[1].
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/MediaWiki_1.41.0_database_schema.png/300px-MediaWiki_1.41.0_database_schema.png)
Схема базы данных (от англ. Database schema) — её структура, описанная на формальном языке, поддерживаемом СУБД. В реляционных базах данных схема определяет таблицы, поля в каждой таблице (обычно с указанием их названия, типа, обязательности), и ограничения целостности (первичный, потенциальные и внешние ключи и другие ограничения).
Схемы в общем случае хранятся в словаре данных. Хотя схема определена на языке базы данных в виде текста, термин часто используется для обозначения графического представления структуры базы данных[2].
Основными объектами графического представления схемы являются таблицы и связи, определяемые внешними ключами.
Схема как объект базы данных
правитьЕсть и другое понятие схемы в теории баз данных.
Схема (SCHEMA)[3] является одним из основных объектов базы данных Oracle Database. Близкое понятие (RIS Schema) существует в RIS-интерфейсе доступа к базам данных. SCHEMA также появилась и в Microsoft SQL Server 2005 и формально определяется как набор объектов в базе данных[4].
В Oracle схема привязывается только к одному пользователю (USER) и является логическим набором объектов базы данных. Схема создаётся при создании пользователем первого объекта, и все последующие объекты, созданные этим пользователем, становятся частью этой схемы.
Схема может включать другие объекты, принадлежащие этому пользователю:
- таблицы
- последовательности
- хранимые программы
- кластеры
- связи баз данных
- триггеры
- библиотеки внешних процедур
- индексы
- пакеты
- хранимые функции и процедуры
- синонимы
- представления
- снимки
- объектные таблицы
- объектные типы
- объектные представления
Существуют и подобъекты схемы, такие как:
- столбцы: таблиц и представлений
- секции таблиц
- ограничения целостности
- триггеры
- пакетные процедуры и функции и другие элементы, хранимые в пакетах (курсоры, типы и т. п)
Существуют объекты, независимые от схемы:
- каталоги
- профили
- роли
- сегменты
- табличные области
- пользователи
Oracle Database
правитьВ Oracle Database понятия «схема» и «пользователь» нераздельно слились воедино. Формально два разных слова «user» и «schema» используются в Oracle для обозначения одного и того же: «схемы-пользователя». Документация на этот счет говорит, что «при заведении пользователя CREATE USER автоматически создается схема с таким же именем». С другой стороны, отдельных манипуляций со схемами в Oracle не предусмотрено (команда CREATE SCHEMA в Oracle не создает схему, как можно было бы подумать), вот и выходит, в системе понятий Oracle «схема» = «пользователь».
Для разработчика же эти два понятия не идентичны. Так, схема представляет собой своего рода контейнер хранимых в БД объектов, несущий традиционно двойную функциональную нагрузку: как средства организации данных (объектов в базе много, но не всем приложениям все они интересны) и как средство защиты данных от посторонних приложений. Пользователь же, по своей изначальной идее — это конкретное лицо, которое может подключаться к СУБД для работы с теми или иными данными, проверяться на наличие полномочий, контролироваться на предмет совершаемых действий и т. д.
Уровни схемы базы данных
править- Концептуальная схема — карта концепций и их связей.
- Логическая схема — карта сущностей и их атрибутов и связей.
- Физическая схема — частичная реализация логической схемы.
Примечания
править- ↑ 1 2 ГОСТ Р ИСО МЭК ТО 10032-2007: Эталонная модель управления данными (идентичен ISO/IEC TR 10032:2003 Information technology — Reference model of data management)
- ↑ What is schema? — A Word Definition From the Webopedia Computer Dictionary . Дата обращения: 24 ноября 2008. Архивировано 23 февраля 2009 года.
- ↑ Основные объекты Oracle — Книги по базам данных Архивировано 13 апреля 2010 года.
- ↑ Схемы баз данных SQL Server 2005, разделение пользователей и схем — AskIt.RU . Дата обращения: 7 апреля 2010. Архивировано 19 ноября 2010 года.