Постреляционные субд. объектные субд

Структура реляционной БД.

Типы БД.

Основные возможности СУБД.

Понятие базы данных, СУБД.

План

ТЕРМИНЫ : база данных, система управления базами данных (СУБД),

реляционная БД, запись БД, поле БД, ключевое поле БД, таблица БД, запрос БД, форма БД, отчёт БД, макрос БД, модуль БД.

Одной из основных сфер использования компьютера в современном информационном обществе является хранение и обработка больших объёмов информации.

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

Далее на примере одной из самых распространенных систем управления базами данных - Microsoft Access входит в состав популярного пакета Microsoft Office - мы познакомимся с основными типами данных, способами создания баз данных и с приемами работы с базами данных.

База данных - организованная совокупность данных, предназначенная для длительного хранения во внешней памяти ЭВМ и постоянного применения. Для хранения БД может использоваться как один компьютер, так и множество взаимосвязанных компьютеров.

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

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

В настоящее время наибольше распространение получили СУБД Microsoft Access, FoxPro , dBase . СУБД делятся по способу организации баз данных на сетевые, иерархические и реляционные СУБД.

Основные возможности СУБД:

ü Обновление, пополнение и расширение БД.

ü Высокая надёжность хранения информации.

ü Вывод полной и достоверной информации на запросы.

ü Средства защиты информации в БД.

БД бывают фактографическими и документальными .

В фактографических БД содержатся краткие сведения об описываемых объектах, представленные в строго определённом формате. В БД библиотеки хранятся библиографические сведения о каждой книге: год издания, автор, название и пр. В БД отдела кадров учреждения хранятся анкетные данные сотрудников: ф., и, о, год и место рождения и пр. БД законодательных актов в области уголовного права, к примеру, будет включать в себя тексты законов; БД современной музыки – тесты и ноты песен, справочную информацию о композиторах, поэтах, исполнителях, звуковые записи и видеоклипы. Следовательно, документальная БД содержит обширную информацию самого разного типа: текстовую, звуковую, мультимедийную.

Для хранения БД может использоваться как один компьютер, так и множество взаимосвязанных компьютеров.

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

Известны три основных типа организации данных в БД и связей между ними:

· иерархический (в виде дерева),

· сетевой,

· реляционной .

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

Пример : иерархическую БД образует каталог файлов, хранимый на диске.

Такой же БД является родовое генеалогическое древо.

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

Реляционными БД (от англ. relation – «отношение») называются БД, содержащие информацию в виде прямоугольных таблиц. Согласно этому подходу, такая таблица называется отношением. Каждая строка таблицы содержит информацию об одном отдельном объекте описываемой в БД предметной области, а каждый столбец – определённые характеристики (свойства, атрибуты) этих объектов. Реляционная база данных, по сути, представляет собой двумерную таблицу . В реляционной БД используются четыре основных типов полей:

· Числовой,

· Символьный (слова, тексты, коды и т.д.),

· Дата (календарные даты в форме «день/месяц/год»),

· Логический (принимает два значения: «да» - «нет» или «истина» - «ложь»).

Окно базы данных содержит следующие элементы:

ü Кнопки : «СОЗДАТЬ» , «ОТКРЫТЬ» , «КОНСТРУКТОР» и т. д. Кнопки открывают объект в определенном окне или режиме.

ü Кнопки объектов . (Корешки выбора объектов, ярлычки.) «Таблица» , «Форма» и т. д. Кнопки объектов выводят список объектов, которые могут быть открыты или закрыты.

ü Список объектов. Выводит список объектов, выбираемых пользователем. В нашем варианте список пока пуст.

Основные объекты баз данных:

· Таблица – это объект, предназначенный для хранения данных в виде записей (строк) и полей (столбцов). Обычно каждая таблица используется для хранения сведений по одному конкретному вопросу.

· Форма – это объект Microsoft Access, предназначенный, в основном, для ввода данных. В форме можно разместить элементы управления, применяемые для ввода, изображения и изменения данных в полях таблицы.

· Запрос – объект, позволяющий получить нужные данные из одной или нескольких таблиц.

· Отчет – объект базы данных Microsoft Access, предназначенный для печати данных.

· Макросы – автоматизируют стандартные действия.

· Модули – автоматизируют сложные операции, которые нельзя описать макросами.

В данной главе выделим и характеризируем основные классы СУБД.

Основная классификация СУБД основывается на используемой модели баз данных. По этому критерию выделяют несколько классов СУБД: иерархические, сетевые, реляционные, объектные и другие. Некоторые СУБД могут одновременно поддерживать несколько моделей данных.

Более ранние СУБД такие как иерархические и сетевые имеют древовидную структуру и построены по принципу "Предок - потомок". Но такие системы уже отжили своё и применяются все реже.

На смену иерархическим и сетевым пришли реляционные СУБД.

Характеристика реляционных СУБД

Первые теоретические разработки в области реляционных СУБД были получены еще в 70-х, в то же время появились первые прототипы реляционных СУБД. Долгое время считалось невозможным добиться эффективной реализации таких систем. Однако постепенное накопление методов и алгоритмов организации реляционных баз данных и управления ими привели к тому, что уже в середине 80-х годов реляционные системы практически вытеснили с мирового рынка ранние СУБД.

Реляционный подход организации СУБД предполагает наличие набора отношений (двумерных таблиц), связанных между собой. Связь в данном случае - это ассоциирование двух или более отношений (таблиц). База данных, не имеющая связей между отношениями, имеет очень ограниченную структуру и реляционной называться не может. Запросы к таким базам данных возвращает таблицу, которая повторно может участвовать в следующем запросе. Данные в одних таблицах, как мы говорили, связаны с данными других таблиц, откуда и произошло название "реляционные".

Реляционный подход в построении СУБД имеет ряд достоинств Байдак А.Я., Булгаков А.А. Современные СУБД и их применение в энергетике [Электронный ресурс]. - Режим доступа: http: //masters. donntu.edu.ua/2010/etf/baydak/library/article2. htm. - Загл. с экрана:

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

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

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

Реляционная модель имеет строгое теоретическое обоснование. Эта теория способствовала созданию декларативного языка SQL, который в настоящее время стал стандартным в отношении определения и манипулирования реляционными базами данных. Другие сильные стороны реляционной модели - простота, пригодность для систем интерактивной обработки транзакций (OLTP), обеспечение независимости от данных. Однако реляционная модель данных и реляционная СУБД, в частности, имеют и определенные недостатки.

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

Основной принцип реляционной модели - устранять повторяющиеся поля и группы с помощью процесса, который называется нормализацией. Плоские нормализованные таблицы универсальны, просты в понимании и теоретически достаточны для представления данных любой предметной области. Они хорошо подходят для приложений, связанных с хранением и отображением данных в традиционных отраслях, таких как банковские или учетные системы, но их применение в системах, основанных на более сложных структурах данных, часто является затруднительным. В основном, это связано с примитивностью механизмов хранения данных, лежащих в основе реляционной модели Никитин М. Закончилась ли эпоха реляционных СУБД? [Электронный ресурс]. - Режим доступа: http: //www.cnews.ru/reviews/free/marketBD/articles/articles2. shtml. - Загл. с экрана.

На сегодняшний день известные фирмы производители реляционных СУБД следующие - ORACLE, Informix, IBM (DB2), Sybase, Microsoft (MS SQL Server), Progress и другие. В своих продуктах производители СУБД ориентируются на работу на различных типах компьютеров (от майнфреймов до портативных) и на различных операционных системах (ОС). Также производители СУБД не обошли вниманием продукты, работающие на настольных компьютерах, такие как dBase, FoxPro, Access и им подобные. Данные СУБД предназначены для работы на РС и решают локальные задачи на одном РС или небольшой группе РС. Часто данные СУБД используются, как зеркальное отображения небольшой части общей корпоративной СУБД, для минимизации требуемых аппаратных и ресурсных затрат для решения небольших задач.

Различные СУБД работают под управлением разных ОС и аппаратной части. Наиболее известные среди таких ОС - UNIX, VAX, Solaris, Windows. В зависимости от объема хранения данных, количества пользователей, осуществляющих одновременный доступ к данным, сложности задач - используются различные СУБД на различных платформах. Например, СУБД Oracle на Unix, инсталлированная на многопроцессорный сервер позволяет решать задачи по обеспечению данными сотни тысяч пользователей Пономарева И.С. Системы управления базами данных [Электронный ресурс]. - Режим доступа: http: //mathmod. aspu.ru/images/File/Ponomareva/TM10_About%20BD. pdf. - С. 2.

В настоящее время наибольший интерес представляют СУБД ориентированные на операционную систему Windows использующие платформу Intel.

Основные функции СУБД Прикладное программное обеспечение ППО, пользователи Система управления базами данных Операционная система База данных Обеспечение доступа ППО к базе данных Управление базой данных «железо»

СУБД Программные составляющие СУБД включают в себя ядро и сервисные средства (утилиты). ØЯдро СУБД – это набор программных модулей, необходимый и достаточный для создания и поддержания БД, то есть универсальная часть, решающая стандартные задачи по информационному обслуживанию пользователей. ØСервисные программы предоставляют пользователям ряд дополнительных возможностей и услуг, зависящих от описываемой предметной области и потребностей конкретного пользователя. Системой управления базами данных называют программную систему, предназначенную для создания на ЭВМ общей базы данных для множества приложений, поддержания её в актуальном состоянии и обеспечения эффективного доступа пользователей к содержащимся в ней данным в рамках предоставленных им полномочий.

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

Классификация СУБД По методам организации хранения и обработки данных СУБД делят на Ø Централизованные Ø Распределённые. Первые работают с БД, которая физически хранится в одном месте (на одном компьютере). Это не означает, что пользователь может работать с БД только за этим же компьютером: доступ может быть удалённым (в режиме клиент–сервер). Большинство централизованных СУБД перекладывает задачу организации удалённого доступа к данным на сетевое обеспечение, выполняя только свои стандартные функции, которые усложняются за счёт одновременности доступа многих пользователей к данным. По модели данных различают иерархические, сетевые, реляционные, объектно-реляционные и объектно-ориентированные СУБД.

Требования к реляционным СУБД (по Кодду) 1. 2. 3. Явное представление данных (The Information Rule). Информация должна быть представлена в виде данных, хранящихся в ячейках. Данные, хранящиеся в ячейках, должны быть атомарны. Порядок строк в реляционной таблице не должен влиять на смысл данных. Гарантированный доступ к данным (Guaranteed Access Rule). К каждому элементу данных должен быть гарантирован доступ с помощью комбинации имени таблицы, первичного ключа строки и имени столбца. Полная обработка неизвестных значений (Systematic Treatment of Null Values). Неизвестные значения (NULL), отличные от любого известного значения, должны поддерживаться для всех типов данных при выполнении любых операций.

Требования к реляционным СУБД (по Кодду) 4. 5. Доступ к словарю данных в терминах реляционной модели (Dynamic On-Line Catalog Based on the Relational Model). Словарь данных должен сохраняться в форме реляционных таблиц, и СУБД должна поддерживать доступ к нему при помощи стандартных языковых средств. Полнота подмножества языка (Comprehensive Data Sublanguage Rule). Система управления реляционными базами данных должна поддерживать единственный язык запросов, который позволяет выполнять все операции работы к данным: операции определения данных, операции манипулирования данными, управление доступом к данным, управление транзакциями.

Требования к реляционным СУБД (по Кодду) 6. 7. Поддержка обновляемых представлений (View Updating Rule). Обновляемое представление должно поддерживать все операции манипулирования данными, которые поддерживают реляционные таблицы: операции выборки, вставки, модификации и удаления данных. Наличие высокоуровневых операций управления данными (High-Level Insert, Update, and Delete). Операции вставки, модификации и удаления данных должны поддерживаться не только по отношению к одной строке реляционной таблицы, но по отношению к любому множеству строк.

Требования к реляционным СУБД (по Кодду) 8. Физическая независимость данных (Physical Data Independence). Приложения не должны зависеть от используемых способов хранения данных на носителях, от аппаратного обеспечения компьютеров, на которых находится реляционная база данных. 9. Логическая независимость данных (Logical Data Independence). Представление данных в приложении не должно зависеть от структуры реляционных таблиц.

Требования к реляционным СУБД (по Кодду) 10. Независимость контроля целостности (Integrity Independence). Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. СУБД должна выполнять проверку заданных ограничений целостности и автоматически поддерживать целостность данных. 11. Независимость от распределенности (Distribution Independence). База данных может быть распределенной, может находиться на нескольких компьютерах, и это не должно оказывать влияние на приложения. 12. Согласование языковых уровней (Non-Subversion Rule). Не должно быть иного средства доступа к данным, отличного от стандартного языка работы с данными. Если используется низкоуровневый язык доступа к данным, он не должен игнорировать правила безопасности и целостности, которые поддерживаются языком более высокого уровня.

Требования к составу и функциям СУБД 1. Хранение, извлечение и обновление данных. 2. Каталог (ССД), доступный конечным пользователям. Обычно в системном каталоге хранятся следующие сведения: имена, типы и размеры элементов данных; имена связей; накладываемые на данные ограничения поддержки целостности; имена пользователей, которым предоставлено право доступа к данным; внешняя, концептуальная и внутренняя схемы и отображения между ними; статистические данные, например частота транзакций и счетчики обращений к объектам базы данных.

Преимущества наличия ССД ØИнформация о данных может быть централизованно собрана и сохранена, что позволит контролировать доступ к этим данным. ØМожно определить смысл данных, что поможет другим пользователям понять их предназначение. ØУпрощается общение, так как имеются точные определения смысла данных. ØВ системном каталоге также могут быть указаны один или несколько пользователей, которые являются владельцами данных или обладают правом доступа к ним. ØБлагодаря централизованному хранению избыточность и противоречивость описания отдельных элементов данных могут быть легко обнаружены. ØВнесенные в базу данных изменения могут быть запротоколированы. ØПоследствия любых изменений могут быть определены еще до их внесения, поскольку в системном каталоге зафиксированы все существующие элементы данных, установленные между ними связи, а также все их пользователи. ØМеры обеспечения безопасности могут быть дополнительно усилены. ØПоявляются новые возможности организации поддержки целостности данных. ØМожет выполняться аудит хранимой информации.

Системный словарь данных Oracle Хранит всю информацию о структуре, информационных объектах и отношениях в конкретной базе данных. Словарь данных представляет собой набор таблиц и вспомогательных объектов (индексов, кластеров, синонимов, представлений, последовательностей), информация о которых также хранится в таблицах словаря. Логически словарь данных разделяется на: üбазовые таблицы; üпредставления базовых таблиц; üдинамические таблицы и их представления. Всего словарь данных включает более 100 базовых таблиц, которые расположены в табличном пространстве SYSTEM и нигде более. Их имена включают символ "$" (поэтому его не рекомендуется использовать в названиях небазовых объектов), например: AUD$ – таблица audit-информации; FILE$ – таблица файлов; USER$ – таблица пользователей; IND$ – таблица индексов; OBJ$ – таблица объектов; SEG$ – таблица сегментов; SYN$ – таблица синонимов; TAB$ – таблица таблиц; TS$ – таблица табличных областей; VIEW$ – таблица представлений.

Работа с системным словарём Для получения информации из словаря данных пользователям предоставлены представления базовых таблиц. Они разбиты на три группы: DBA – представления, предназначенные пользователям, являющимися АБД, то есть которым присвоена роль DBA. По этим представлениям предоставляется наиболее полная информация из словаря данных; USER – представления, по которым каждый пользователь получает информацию о тех объектах, которыми владеет; ALL – представления, дающие каждому пользователю всю информацию об объектах, к которым ему разрешен доступ. Например: DBA/ALL/USER_INDEXES – все/доступные/пользовательские индексы; DBA/ALL/USER_IND_COLUMNS – все/доступные/пользовательские колонки индексов; DBA/ALL/USER_OBJECTS – все/доступные/пользовательские объекты; DBA/ALL/USER_SYNONYMS – все/доступные/пользовательские синонимы; DBA/ALL/USER_TABLES – все/доступные/пользовательские таблицы; DBA/ALL/USER_TAB_COLUMNS – все/доступные/пользовательские колонки таблиц; DBA/ALL/USER_TAB_PRIVS – все/доступные/пользовательские привилегии на таблицы; DBA/ALL/USER_VIEWS – все/доступные/пользовательские представления.

Работа с системным словарём Некоторые представления (по смыслу их применения) присутствуют только в одной или двух группах. Наиболее характерно это для DBA-представлений, например: DBA_DATA_FILES – данные о физических файлах базы и журналов; DBA/USER_FREE_SPACE – свободная память в табличных пространствах (вся и доступная конкретному пользователю); DBA_PROFILES – перечень вариантов "стоимости" системных ресурсов; DBA_ROLES – перечень определенных в базе данных ролей. Примеры извлечения данных из ССД: select table_name from user_tables; select * from all_views; select view_name from dba_views;

Работа с системным словарём Важное значение имеет синоним DICT к представлению DICTIONARY. По нему выбираются имена таблиц, представлений, синонимов словаря данных с описаниями, если таковые есть в базе данных. Приведем небольшой фрагмент: select * from dict; ALL_CATALOG Все таблицы, представления, синонимы, последовательности, доступные пользователю ALL_DB_LINKS Связи базы данных, доступные пользователю DBA_OBJECTS Все объекты в базе данных DBA_ROLES Все роли, которые существуют в БД USER_EXTENTS Экстенты, принадлежащие пользователю USER_VIEWS Определения представлений, принадлежащих пользователю DUAL Специальная таблица, содержащая один столбец DUMMY и одну строку DICT Синоним для DICTIONARY TABS Синоним для USER_TABLES

Работа с системным словарём АБД открыт доступ к этим таблицам, но работать на этом уровне, за исключением случаев КРАЙНЕЙ необходимости, НИКОГДА НЕ рекомендуется: вся информация словаря данных доступна через представления базовых таблиц; данные в базовых таблицах представлены без дублирования по правилам внутри системной упорядоченности, без расшифровки; количество, названия, размеры столбцов таблиц сделаны без учета достаточной наглядности; случайная, намеренная или еще по какой-либо причине КОРРЕКТИРОВКА содержимого базовых таблиц (даже в очевидных случаях, например, хранение данных о давно удаленных табличных пространствах), как правило, приводит к ПОВРЕЖДЕНИЮ словаря данных, то есть к ПОТЕРЕ всей базы данных. Редчайшее исключение представляет AUD$ (таблица аудиторской информации), из которой следует периодически удалять ненужные записи, поскольку при включенном audit-режиме эта таблица быстро наполняется и может переполнить табличное пространство SYSTEM.

Требования к составу и функциям СУБД 3. 4. 5. 6. 7. 8. 9. Поддержка транзакций. Служба управления параллельной работой. Службы восстановления. Службы контроля доступа к данным. Службы поддержки целостности данных. Службы поддержки независимости от данных. Вспомогательные службы.

Вспомогательные службы Обычно предназначены для оказания помощи АБД в эффективном администрировании базы данных. Некоторые примеры подобных утилит. Утилиты импортирования, предназначенные для загрузки базы данных из плоских файлов, а также утилиты экспортирования, которые служат для выгрузки базы данных в плоские файлы. Средства мониторинга, предназначенные для отслеживания характеристик функционирования и использования базы данных. Программы статистического анализа, позволяющие оценить производительность или степень использования базы данных. Инструменты реорганизации индексов, предназначенные для перестройки индексов в случае их переполнения. Инструменты сборки мусора и перераспределения памяти для физического устранения удаленных записей с запоминающих устройств, объединения освобожденного пространства и перераспределения памяти по мере необходимости.

Основные программные компоненты СУБД Процессор запросов. Преобразует запросы в последовательность низкоуровневых команд для диспетчера базы данных. Диспетчер базы данных. Принимает запросы и проверяет внешние и концептуальные схемы для определения тех концептуальных записей, которые необходимы для удовлетворения требований запроса. Затем вызывает диспетчер файлов для выполнения поступившего запроса. Диспетчер файлов. Манипулирует предназначенными для хранения данных файлами и отвечает за распределение доступного дискового пространства. Он создает и поддерживает список структур и индексов, определенных во внутренней схеме. Если используются хешированные файлы, то в его обязанности входит и вызов функций хеширования для генерации адресов записей.

Основные программные компоненты СУБД Препроцессор языка DML. Этот модуль преобразует внедренные в прикладные программы DML-операторы в вызовы стандартных функций базового языка. Для генерации соответствующего кода препроцессор языка DML должен взаимодействовать с процессором запросов. Компилятор языка DDL. Преобразует DDL-команды в набор таблиц, содержащих метаданные. Затем эти таблицы сохраняются в системном каталоге, а управляющая информация - в заголовках файлов с данными. Диспетчер словаря. Управляет доступом к системному каталогу и обеспечивает работу с ним. Системный каталог доступен большинству компонентов СУБД.

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

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

Основные объекты Oracle База данных (DATABASE) – объект, который находится на самом верхнем уровне физической организации базы данных Oracle находится объект, который так и называется: база данных (database). База данных состоит из словаря-справочника данных, собственно данных и различных вспомогательных объектов: файла параметров инициализации, управляющего файла, файла сегментов отката и двух файлов журнала транзакций. (Этот перечень может быть расширен, например, за счет копий управляющего файла). База данных может быть создана автоматически при инсталляции СУБД Oracle или вручную с помощью команды CREATE DATABASE. Табличная область (TABLESPACE) – область памяти, предназначенная для хранения всех объектов БД. Табличная область имеет имя и занимает один или более файлов операционной системы. Создается командой CREATE TABLESPACE. Иногда табличную область называют табличным пространством.

Основные объекты Oracle Пользователь (USER) – объект, обладающий возможностью создавать и использовать другие объекты Oracle, а также запрашивать выполнение функций сервера. К числу таких функций относятся организация сессии, изменение состояния сервера и базы данных, создание других объектов БД, запросы на выполнение операторов SQL и проч. В СУБД Oracle имя пользователя совпадает с именем схемы. Создается командой CREATE USER. Каждый объект БД принадлежит тому пользователю, который его создал, и находится в его схеме. Полное имя любого объекта БД (кроме базы данных, табличных областей и пользователей) состоит из имени схемы, в которой он создан, и собственно имени объекта, например: scott. emp Здесь scott – имя пользователя (схемы), emp – имя объекта (таблицы "Сотрудники"), а точка – это т. н. квалифицированная ссылка, разделяющая уровни определения.

Основные объекты Oracle Кластер (CLUSTER) – объект, задающий способ совместного хранения данных нескольких таблиц, содержащих информацию, обычно обрабатываемую совместно. Кластеризация таблиц позволяет уменьшить время выполнения выборки. Создается командой CREATE CLUSTER. Включает таблицы с данными. Таблица (TABLE) является базовой структурой реляционной модели. Как известно, вся информация в базе данных хранится в таблицах. Таблицы состоят из множества поименованных столбцов или атрибутов. Множество значений столбца определено с помощью ограничений целостности, то есть поддерживается ограниченная концепция домена (множества допустимых значений). Таблица может быть пустой или состоять из одной или более строк значений атрибутов. Строки значений атрибутов таблицы называют также записями или кортежами. Создается командой CREATE TABLE, может быть создана в кластере.

Основные объекты Oracle Индекс (INDEX) – это объект базы данных, создаваемый для повышения производительности выборки данных. Индекс создается для столбца (столбцов) таблицы и обеспечивает более быстрый доступ к данным этой таблицы за счет упорядочения данных столбца (столбцов) по значению. Создается командой CREATE INDEX. Кластеры, таблицы и индексы называются объектами, занимающими память, т. к. в них хранятся фактографические данные. Им при создании выделяется определенный объем памяти (один или несколько экстентов), который может быть увеличен при добавлении в них данных. Экстент (extent) – это непрерывная область памяти в табличном пространстве. Все экстенты, относящиеся к одному объекту, образуют сегмент (segment). Кластер Таблица Индекс

Основные объекты Oracle Представление (VIEW) – это поименованная, динамически поддерживаемая сервером выборка данных из одной или нескольких таблиц. В основе представления лежит оператор SELECT, который называется базовым запросом представления. Базовый запрос определяет видимые пользователем данные. Представление позволяет ограничить данные, которые пользователь может модифицировать. Данные в представлении не хранятся: сервер формирует представление каждый раз при обращении к нему (это называется материализация представления). Используя представления, администратор безопасности может ограничить доступную пользователям часть базы данных только теми данными, которые реально необходимы им для выполнения работы. Создается командой CREATE VIEW. Последовательность (SEQUENCE) – это объект, обеспечивающий генерацию уникальных номеров в условиях многопользовательского асинхронного доступа. Обычно элементы последовательности используются для вставки уникальных идентификационных номеров для элементов таблиц базы данных. Создается командой CREATE SEQUENCE.

Основные объекты Oracle Синоним (SYNONYM) – это альтернативное имя или псевдоним объекта Oracle, который позволяет пользователям базы данных иметь доступ к данному объекту. Синоним может быть частным и общим. Общий (public) синоним позволяет всем пользователям базы данных обращаться к соответствующему объекту по альтернативному имени. При этом имя схемы для обращения к объекту не надо указывать, даже если Вы подключились не как владелец объекта, а из другой схемы. Создается командой CREATE SYNONYM. Роль (ROLE) – именованная совокупность привилегий, которые могут быть предоставлены пользователям или другим ролям. Используется для эффективного управления разграничением доступа к данным. Oracle поддерживает несколько стандартных или предопределенных ролей (DBA, CONNECT, RESOURCE и др.). Создается командой CREATE ROLE.

Основные объекты Oracle Специфичными для распределенных систем являются такие объекты Oracle как снимок и связь базы данных. Снимок (SNAPSHOT) – локальная копия таблицы удаленной базы данных, которая используется либо для тиражирования (копирования) всей или части таблицы, либо для тиражирования результата запроса данных из нескольких таблиц. Снимки могут быть модифицируемыми или предназначенными только для чтения. Снимки только для чтения возможно периодически обновлять, отражая изменения основной таблицы. Изменения, сделанные в модифицируемом снимке, распространяются на основную таблицу и другие копии. Создается командой CREATE SNAPSHOT. Связь базы данных (DATABASE LINK) – это объект базы данных, который позволяет обратиться к объектам удаленной базы данных. Имя связи базы данных можно рассматривать как ссылку на параметры механизма доступа к удаленной базе данных (имя узла, протокол и т. п.). Использование одного имени упрощает работу с объектами удаленной базы данных. Создается командой CREATE DATABASE LINK.

Основные объекты Oracle Для программирования алгоритмов обработки данных, поддержки сложных правил целостности данных Oracle использует процедурные объекты: Процедура (PROCEDURE) – это подпрограмма на языке PL/SQL, предназначенная для решения конкретной задачи обработки данных. Создается командой CREATE PROCEDURE. Функция (FUNCTION) – это подпрограмма на языке PL/SQL, предназначенная для решения конкретной задачи и возвращающая конкретное значение. Создается командой CREATE FUNCTION. Пакет (PACKAGE) – это поименованный, структурированный набор переменных, процедур и функций, связанных единым функциональным замыслом. Пакет состоит из спецификации и тела пакета. Спецификация содержит описания внешних переменных, констант, типов и подпрограмм, а тело пакета – реализацию подпрограмм и описание внутренних переменных, констант и типов, которые доступны только внутри пакета. Спецификация пакета создается командой CREATE PACKAGE, а тело пакета – CREATE PACKAGE BODY. Триггер (TRIGGER) – это хранимая процедура, которая автоматически запускается тогда, когда происходит связанное с триггером событие. Обычно события связаны с выполнением операторов INSERT, UPDATE или DELETE в некоторой таблице. Создается командой CREATE TRIGGER.

Физическая структура базы данных Oracle Параметры среды: $ORACLE_HOME – имя домашней директории Oracle. $ORACLE_SID – имя базы данных Oracle. База данных Oracle включает: Управляющие файлы (ctrl 1$ORACLE_SID. ctl, ctrl 2$ORACLE_SID. ctl, . .) Файл параметров запуска экземпляра init$ORACLE_SID. ora Файл параметров конфигурации базы config$ORACLE_SID. ora Журнальные файлы регистрации изменений (log 1$ORACLE_SID. dbf, log 2$ORACLE_SID. dbf, . .) Системное табличное пространство (SYSTEM, system$ORACLE_SID. dbf) Временное табличное пространство (TEMP, temp$ORACLE_SID. dbf) Табличное пространство для данных пользователей (USER, user$ORACLE_SID. dbf)

Структуры оперативной памяти Oracle SGA – это память, используемая всеми процессами экземпляра. Существует всего одна SGA для экземпляра. Изменения, сделанные в элементах SGA для одного процесса, немедленно становятся доступными для всех процессов, функционирующих в составе этого экземпляра. Создаваемая при запуске экземпляра Oracle, SGA имеет фиксированный размер. Она существует до тех пор, пока экземпляр не будет завершен вручную, или случится перезагрузка операционной системы, или произойдет аварийное завершение (крах) собственно Oracle. Основными внутренними структурами SGA являются: кеш буферов данных (Database Buffer Cache), то есть набор свободных, считанных и модифицированных блоков данных, в которых размещается информация из базы; буфер журнала транзакций (Redo Log Buffer); разделяемый (общий) буферный пул (Shared Buffer Pool).

Структуры оперативной памяти Oracle. SGA Кеш буферов данных содержит два списка: список наименее используемых в данный момент блоков (LRU – least_recently_used), куда входят считанные с диска, но еще не модифицированные блоки, а также свободные буферы данных; список модифицированных (dirty – "грязный"), но еще не записанных на диск блоков. Обратите внимание: обмен "диск-память" всегда производится блоками вне зависимости от их заполненности записями данных и от количества измененных при обработке записей; при обращении к данным Oracle сначала проверяет, имеются ли требуемые данные в кеше буферов, и, только если их нет, обращается к диску; считанные с диска блоки данных попадают в начало списка LRU. Если они затем модифицируются, то Oracle их переводит в список "грязных" блоков для последующей записи на диск; при недостатке в кеше свободных буферов для выполнения очередного запроса Oracle удаляет блоки с "хвоста" списка LRU, как наименее активно используемые, и на их место считывает с диска требуемые блоки данных.

Структуры оперативной памяти Oracle. SGA Буфер журнала регистрации изменений представляет собой циклически используемую память. В этот буфер поступают все изменения, происходящие в базе с пользовательскими, системными, служебными данными. Поскольку журнал регистрации изменений предназначен для восстановления состояния базы данных после аварийных ситуаций, записи журнала несут в себе "старое" и "новое" значения изменившихся элементов, в частности целиком записи данных после операций вставки их в базу или удаления из БД. Если обработка данных производится так интенсивно, что буфер журнала переполняется, то есть если процесс LGWR (процесс записи в журнал) не успевает переносить данные из буфера на диск, Oracle начинает сдерживать пользовательские процессы. Разделяемый (общий) буферный пул включает в себя: 1. кеш словаря (Dictionary Cache): хранит в себе наиболее часто (в текущей работе) используемые сведения из системного словаря данных, а именно: названия таблиц и представлений, имена столбцов и типы данных, привилегии и роли пользователей, права доступа к объектам базы данных и др. 2. разделяемую (общую) область SQL и PL/SQL (Shared SQL and PL/SQL), которая известна также как "библиотечный кеш" (library cache): включает в себя набор курсоров, то есть структур памяти, в которых хранятся результаты синтаксический разбора и планы выполнения SQL-предложений и блоков PL/SQL.

Структуры оперативной памяти Oracle. PGA представляет собой область оперативной памяти, выделяемую для обеспечения функционирования отдельного процесса. Имеет место одна и только одна целиком выделяемая процессу и независимая от других процессов PGA для каждого процесса экземпляра. Размер PGA может динамически увеличиваться в процессе функционирования. PGA часто называют глобальной областью процесса (Process Global Area). Когда процесс Oracle нормально завершается, вся память PGA возвращается операционной системе. PGA процесса Oracle-сервера включает в себя: область стека, содержащую переменные и служебную информацию о сеансе; частную SQL-область, которую иногда называют "Глобальной областью пользователя" (UGA – User Global Area), в которой производится синтаксический разбор SQL-предложений и блоков PL/SQL. Эта область физически располагается в SGA (вариант архитектуры MTS) или в PGA (архитектура с выделенными серверами). Важно то, что рекурсивные сессии не получают свои собственные UGA, а разделяют UGA породившей их сессии; необязательная область сортировки (размером sort_area_size), которая как временная память требуется для хранения промежуточных результатов сортировки данных. Если выделенной памяти недостаточно для проведения сортировки, процесс использует временный сегмент соответствующего табличного пространства.

Процессы экземпляра Oracle Набор работающих с базой данных фоновых процессов и порожденная при запуске экземпляра SGA (Системная Глобальная Область) составляют экземпляр Oracle. Все процессы экземпляра функционируют на едином программном ядре ($ORACLE_HOME/bin/oracle) СУБД. Обычно процессы экземпляра определяют как фоновые (обслуживающие, вспомогательные, дополнительные) и серверные (содержательная обработка запросов). Минимально необходимым для функционирования Oracle является набор из следующих четырех фоновых процессов: ora_pmon_ – процесс мониторинга внутреннего состояния системы ora_dbwr_ – процесс записи данных в базу данных Oracle ora_lgwr_ – процесс записи в журнал регистрации изменений ora_smon_ – процесс системного мониторинга.

Процессы экземпляра Oracle 1. pmon – фоновый процесс-монитор. Он следит: за состоянием процессов в системе (в частности, он отслеживает обращение к серверу со стороны пользователей (connect) и запускает сервер-процессы); обнаруживает аварийные ситуации и "мертвые" блокировки сервер-процессов; освобождает ресурсы, то есть снимает блокировки; завершает транзакции, удаляет процессы из списка активных; восстанавливает состояние (rollback – откат) базы данных после ненормальных ситуаций завершения пользовательских процессов. 2. dbwr – фоновый процесс записи блоков данных в базу из списка модифицированных блоков в SGA. dbwr "пробуждается" к работе, если: длина списка модифицированных блоков превысила пороговое значение; в списке свободных буферов не хватает памяти для чтения новых блоков; истек очередной 3 -х секундный интервал времени; фоновый процесс записи в журнал lgwr сигнализирует о начале формирования очередной контрольной точки.

Процессы экземпляра Oracle 3. lgwr – фоновый процесс записи в журнал регистрации изменений в базе данных. Регистрация транзакций осуществляется следующим образом: по мере выполнения транзакции создаются небольшие записи, называемые элементами повтора (redo entries), в которых содержится информация, достаточная для воссоздания изменений, вносимых транзакцией. элементы повтора транзакции временно сохраняются в буфере журнала повтора. когда запрашивается завершение транзакции, процесс lgwr считывает необходимые элементы повтора из буфера журнала транзакций и записывает их в журнал транзакций базы данных. Транзакция считается завершенной, когда процесс lgwr запишет элемент повтора транзакции в журнал транзакций и сделает запись о ее завершении в журнале транзакций. Данные из SGA-буфера переносятся на диск в следующих случаях: выполнена операция COMMIT фиксации изменений очередной транзакции; истек очередной 3 -х секундный интервал времени; буфер журнала в SGA заполнен на одну треть своей емкости; процесс dbwr записал на диск очередную порцию модифицированных буферов.

Процессы экземпляра Oracle 4. smon – обязательный процесс системного мониторинга выполняет: автоматическое восстановление (roll forward – накат вперед) базы данных, если ее предыдущий запуск завершился ненормально или аварийно; освобождение временных сегментов от ненужных данных; объединение смежных свободных экстентов табличных пространств в непрерывные участки. 5. arch – необязательный фоновый процесс архивирования файлов оперативных журналов регистрации изменений в базе данных. Место копирования (диск, лента, . . .) определяется параметром log_archive_dest в файле init. ora. Если процесс arch не успел заархивировать очередной журнальный файл (например, переполнена файловая система и не хватает места, чтобы разместить файл-архив), а требуется на него переключение, Oracle приостанавливает функционирование, выполняя только транзакции, не связанные с ведением журнала.

Процессы экземпляра Oracle 6. ckpt – необязательный вспомогательный процесс записи контрольной точки в оперативный журнал фиксации изменений. Обычно контрольные точки записывает lgwr. Процесс ckpt (checkpoint_process = true в файле init. ora) лишь освобождает lgwr от этой функции. 7. reco – (полу) обязательный процесс, ответственный за связи с удаленными базами данных. Процесс reco можно не запускать (в init. ora параметр disributed_transaction = 0), но тогда экземпляр не сможет использовать ни одной "связи между базами данных". 8. snp. X – от одного до десяти процессов автоматического обновления снапшотов локальной базы. Количество задается в init. ora параметром snapshot_refresh_processes, а параметр snapshot_refresh_interval определяет регулярность их включения. Процессы snp. X можно отнести к серверным, поскольку они, связываясь с другими (в частности с той же самой) базами данных, работают с пользовательской информацией в базе данных.

Процессы экземпляра Oracle 9. db. XX – дополнительные процессы записи в базу данных. Если узким местом производительности базы является ввод/вывод, а база физически размещается на нескольких дисках, рекомендуется запустить несколько дополнительных процессов записи (в среднем, по одному на каждый отдельный диск). Количество дополнительных db. XX определяется параметром db_writers. 10. d. XXX – процессы диспетчеры в варианте архитектуры MTS с разделяемыми серверами. Количество функционирующих в данный момент диспетчеров зависит от напряженности работы Oracle, но не превышает заданного параметром mts_max_dispatchers числа. Каждый диспетчер обслуживает только конкретный сетевой или внутренний протокол. Например: mts_dispatchers="tcp, 1" mts_dispatchers="ipc, 1"

Процессы экземпляра Oracle 11. s. XXX – процессы серверы в варианте архитектуры MTS с разделяемыми серверами. Количество функционирующих в данный момент серверов зависит от напряженности работы Oracle, но не превышает заданного параметром mts_max_servers числа. Стартуя, Oracle запускает несколько (mts_servers) сервер-процессов, а затем то мере возрастания или снижения нагрузки запускает или завершает дополнительные процессы. 12. oracle – выделенный процесс сервера, индивидуально обслуживающий какой-то пользовательский (в частном случае и процесс snp) процесс, вполне возможно функционирующий на другой машине. 13. loc. X – от одного до десяти процессов блокировок, обеспечивающих взаимное управление ресурсами в среде параллельного сервера.

Архитектуры серверов Oracle Однопользовательский вариант (пример среды – MS DOS) характеризуется тем, что: происходит объединение пользовательского процесса, процесса сервера и фоновых процессов в рамки одной задачи операционной системы; возможен запуск только одной базы данных и одного экземпляра Oracle; в распределенной базе данных не может функционировать в качестве сервера. Многопользовательский вариант (пример среды – UNIX) характеризуется тем, что: происходит разделение пользовательских, серверных и фоновых процессов на отдельные задачи операционной системы; есть возможность запуска нескольких баз данных и экземпляров Oracle; возможно функционирование в качестве сервера в распределенной БД.

Архитектуры серверов Oracle Однозадачный вариант (пример среды – Net. Ware) характеризуется тем, что: пользовательский процесс и процесс сервера образуют единую задачу операционной системы, называемую задачей пользователя; в каждый момент времени на сервере может выполняться только одна задача пользователя; возможен доступ многих пользователей через Net 8 (SQL*Net) к базе данных. Двухзадачный вариант (пример среды – UNIX) характеризуется тем, что: пользовательский процесс и процесс обслуживающего сервера представляют собой полностью самостоятельные процессы операционной системы вплоть до того, что могут функционировать на разных машинах и платформах (архитектура "клиент-сервер"); в каждый момент времени на сервере может функционировать несколько (много) пользовательских и серверных процессов; возможен доступ многих пользователей через Net 8 (SQL*Net) к локальным базам данных и локальных пользователей к удаленным базам данных.

Архитектуры серверов Oracle Однонитевая архитектура, или вариант с выделенными (Dedicated) серверами: жесткое закрепление за каждым пользовательским процессом процесса сервера, который выполняет его и только его запросы к базе данных. Параллельный сервер (среда – кластерные системы, например, RM-1000): на каждом процессоре кластера функционирует свой экземпляр Oracle, включающий отдельную область SGA и набор системных процессов; каждый экземпляр ведет свои собственные журналы регистрации изменений; база данных и управляющие файлы являются общими для всех экземпляров; к каждому экземпляру возможно подключение многих пользователей; каждый экземпляр адресуем отдельно, и может самостоятельно работать как часть распределенной системы.

Архитектуры серверов Oracle Многонитевая архитектура (MTS – Multi-Tread Server), вариант с разделяемыми серверами характеризуется: наличием процессов-диспетчеров, принимающих запросы от пользовательских процессов и возвращающих им результаты выполненных сервер-процессами запросов; наличием в SGA: одной входной очереди для всех сервер-процессов, в которую диспетчеры помещают заявки на обслуживание от пользователей; нескольких выходных очередей, закрепленных по одной за каждым процессом диспетчером, куда серверы помещают и откуда диспетчеры передают пользователям результаты выполнения запросов к базе данных; переносом в SGA экземпляра Oracle частных SQL-областей, ранее размещавшихся в PGA процессов серверов; динамическим изменением в зависимости от текущей нагрузки системы количества функционирующих диспетчеров и сервер-процессов; ни диспетчеры, ни серверы не закрепляются за какими-либо процессами пользователей: запросы обслуживаются по мере поступления; возможностью одновременного функционирования выделенных и разделяемых серверов.

логической модели реляционной базы данных в объекты реляционной базы данных. Для решения этой задачи проектировщику базы данных необходимо знать: а) какими объектами располагает реляционная база данных в принципе; б) какие объекты поддерживает конкретная СУБД, которая выбрана для реализации базы данных.

Таким образом, мы предполагаем, что решение о выборе СУБД уже принято руководителем ИТ-проекта, и согласовано с заказчиком базы данных, т.е. СУБД задана. Проектировщик базы данных должен ознакомиться с документацией, в которой описан диалект SQL, поддерживаемый выбранной СУБД. В настоящей лекции предполагается, что была выбрана СУБД Oracle 9i, хотя подавляющая часть материала охватывает объекты в любой промышленной реляционной СУБД.

Замечание. О выборе СУБД. Выбор СУБД относится к многокритериальной задаче выбора и в настоящем курсе не рассматривается. Следует помнить о том, что СУБД обычно поддерживает только одну модель данных: реляционную, иерархическую, сетевую, многомерную, объектно-ориентированную, объектно-реляционную. Исключение составляют небольшое число СУБД. Например, ADABAS, Software AG (сетевая и реляционная модели), или Oracle 9i, Oracle Inc. (реляционная и объектно-реляционная модели). Обычно при выборе СУБД при всех прочих равных возможностях стараются создать базу данных на СУБД, претендующей на промышленный стандарт.

Иерархия объектов реляционной базы данных прописана в стандартах по SQL, в частности, в стандарте SQL-92 , на который мы будем ориентироваться при изложении материала настоящей лекции. Этот стандарт поддерживается практически всеми современными СУБД, вплоть до настольных. Иерархия объектов реляционной базы данных показана на рисунке ниже.

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

Замечание. В контексте лекции атрибуты, колонки, столбцы и поля считаются синонимами. То же относится и к терминам "строка", "запись" и "кортеж".

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


Рис. 8.1.

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

Основные объекты реляционной базы данных

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

Под кластером понимается группа каталогов, к которым можно обращаться через одно соединение с сервером базы данных (программная компонента СУБД).

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

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

Для создания таблиц и представлений наличие схемы не обязательно. Если у вас планируется инсталляция только одной логической базы данных, то ясно, что можно обойтись и без схемы. Но если планируется, что одна и та же СУБД будет использоваться для поддержки нескольких баз данных, то надлежащая организация объектов баз данных в схемы может значительно облегчить сопровождение этих баз данных. На практике схема часто ассоциируется с объектами определенного пользователя физической базы данных.

Далее объекты реляционной базы данных будут вводиться в контексте реляционной СУБД Oracle 9i. Такой подход принят потому, что проектирование физической модели реляционной базы данных выполняется для конкретной среды ее реализации.

В Oracle 9i термин схема (Schema) используется для описания всех объектов базы данных, которые созданы некоторым пользователем. Для каждого нового пользователя автоматически создается новая схема.

К числу основных объектов реляционных баз данных относятся таблица, представление и пользователь.

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

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

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

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

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

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

Определенные пользователем типы данных ( User-defined data types ) представляют собой определенные пользователем типы атрибутов (домены), которые отличаются от поддерживаемых (встроенных) СУБД типов. Они определяются на основе встроенных типов. Определенные пользователем типы данных образуют ту часть среды СУБД, которая организована в соответствии с объектно-ориентированной парадигмой.

Для обеспечения эффективного доступа к данным в реляционных СУБД поддерживаются ряд других объектов: индекс, табличная область, кластер, секция.

Индекс (Index) - это объект базы данных, создаваемый для повышения производительности выборки данных и контроля уникальности первичного ключа (если он задан для таблицы). Полностью индексные таблицы (index-organized tables) исполняют роль таблицы и индекса одновременно.

Табличное пространство или область ( Tablespace ) - это именованная часть базы данных, используемая для распределения памяти для таблиц и индексов. В Oracle 9i - это логическое имя физических файлов операционной системы. Все объекты базы данных, в которых хранятся данные, соответствуют некоторым табличным пространствам . Большинство объектов базы данных, в которых данные не хранятся, находятся в словаре данных, расположенном в табличном пространстве SYSTEM .

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

Секция (Partition) - это объект базы данных, который позволяет представить объект с данными в виде совокупности подобъектов, отнесенных к различным табличным пространствам . Таким образом, секционирование позволяет распределять очень большие таблицы на нескольких жестких дисках.

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

Данные объекты реляционной базы данных представляют собой программы, т.е. исполняемый код. Этого код обычно называют серверным кодом (server-side code) , поскольку он выполняется компьютером, на котором установлено ядро реляционной СУБД. Планирование и разработка такого кода является одной из задач проектировщика реляционной базы данных.

Хранимая процедура ( Stored procedure ) - это объект базы данных, представляющий поименованный набор команд SQL и/или операторов специализированных языков обработки программирования базы данных (например, SQLWindows или PL/SQL).

Функция (Function) - это объект базы данных, представляющий поименованный набор команд SQL и/или операторов специализированных языков обработки программирования базы данных, который при выполнении возвращает значение - результат вычислений.

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

Триггер (Trigger) - это объект базы данных, который представляет собой специальную хранимую процедуру. Эта процедура запускается автоматически, когда происходит связанное с триггером событие (например, до вставки строки в таблицу).

Таймер (Timer) отличается от триггера тем, что запускающим событием для хранимой процедуры является событие таймера.

Пакет (Package) - это объект базы данных, который состоит из поименованного структурированного набора переменных, процедур и функций.

В распределенных реляционных СУБД имеются специальные объекты: снимок и связь базы данных.

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

Связь базы данных (Database Link) или связь с удаленной базой данных - это объект базы данных, который позволяет обратиться к объектам удаленной базы данных. Имя связи базы данных, грубо говоря, можно представить как ссылку на параметры доступа к удаленной базы данных.

Для эффективного управления разграничением доступа к данным в Oracle поддерживает объект роль.

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

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

В состав банка данных входят одна или несколько баз данных, справочник баз данных, система управления базами данных (СУБД), а также библиотеки запросов и прикладных программ.

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

Создается банк данных в абонентской системе любой производительности — от персонального компьютера до суперкомпьютера. Но даже самый крупный банк данных ограничен в своих возможностях. Поэтому банки в сети специализируются, собирая информацию в определенных областях науки, технологии, продукции. Ядром банка являются базы данных и базы знаний. База данных - это организованная структура, предназначенная для хранения информации. Данные и информация - понятия взаимосвязанные, но не тождественные, должен заметить несоответствие в этом определении. Сегодня большинство систем управления базами данных (СУБД) позволяют размещать в своих структурах не только данные, но и методы (то есть программный код), с помощью которых происходит взаимодействие с потребителем или с другими программно-аппаратными комплексами. Таким образом, можно говорить, что в современных базах данных хранятся отнюдь не только данные, но и информация.

В БнД имеются специальные средства, облегчающие для пользователей работу с данными (СУБД).

Централизованное управление данными имеет преимущества по сравнению с обычной файловой системой:

— сокращение избыточности хранения данных;

— сокращение трудоемкости разработки, эксплуатации и модернизации ИС;

Обеспечение удобного доступа к данным как пользователям

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

Основные требования, предъявляемые к БнД:

— адекватность отображения предметной области (полнота, целостность и — непротиворечивость данных, актуальность информации;

— возможность взаимодействия пользователей разных категорий, высокая эффективность доступа к данным;

— дружелюбность интерфейсов, малое время на обучение;

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

— надежность хранения и защита данных.

Определение термина Банк данных дано во Временном положении о государственном учете и регистрации баз и банков данных, утвержденное постановлением Правительства Российской Федерации от 28.02.96 № 226, п.2 (СЗ РФ, 1996, № 12, ст. 1114)

Первоначально (начало 60-х годов) использовалась файловая система хранения. Для решения преимущественно инженерных задач, характеризующихся небольшим количеством данных и значительным объемом вычислений, данные хранились непосредственно в программе. Применялся последовательный способ организации данных, имелась их высокая избыточность, идентичность логической и физической структур и полная зависимость данных. С появлением экономико-управленческих задач (информационная система руководства — MIS), отличающихся большими объемами данных и малой долей вычислений, указанная организация данных оказалась неэффективной. Требовалось упорядочение данных, которое, как выяснилось, возможно было проводить по двум критериям: использование (информационные массивы); хранение (базы данных). Первоначально применяли информационные массивы, но вскоре стало ясно превосходство баз данных. Использование файлов для хранения только данных было предложено Мак Гри в 1959 году. Были разработаны методы доступа (в том числе произвольного) к таким файлам, при этом физическая и логическая структуры уже различались, а физическое расположение данных можно было менять без изменения логического представления.

В 1963 году С. Бахманом была построена первая промышленная база данных IDS с сетевой моделью данных, которая все еще характеризовалась избыточностью данных и их использованием только для одного приложения. Доступ к данным осуществлялся с помощью соответствующего программного обеспечения. В 1969 году сформировалась группа, создавшая набор стандартов CODASYL для сетевой модели данных.

Фактически начала использоваться современная архитектура базы данных. Под архитектурой понимается разновидность (обобщение) структуры, в которой какой-либо элемент может быть заменен на другой элемент, характеристики входов и выходов которого идентичны первому элементу. Существенный скачок в развитии технологии баз данных дала предложенная М. Коддом в 1970 году парадигма реляционной модели данных. Под парадигмой понимается научная теория, воплощенная в систему понятий, отражающих существенные черты действительности. Теперь логические структуры могли быть получены из одних и тех же физических данных, т.е. доступ к одним и тем же физическим данным мог осуществляться различными приложениями по разным путям. Стало возможным обеспечение целостности и независимости данных.

В конце 70-х годов появились современные СУБД, обеспечивающие физическую и логическую независимость, безопасность данных, обладающие развитыми языками БД. Последнее десятилетие характеризуется появлением распределенных и объектно-ориентированных баз данных, характеристики которых определяются приложениями средств автоматизации проектирования и интеллектуализации БД.

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

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

СУБД организует хранение информации таким образом, чтобы ее было удобно:

просматривать,

пополнять,

изменять,

искать нужные сведения,

делать любые выборки,

осуществлять сортировку в любом порядке.

Классификация баз данных:

а) по характеру хранимой информации:

Фактографические (картотеки),

Документальные (архивы)

б) по способу хранения данных:

Централизованные (хранятся на одном компьютере),

Распределенные (используются в локальных и глобальных компьютерных сетях).

в) по структуре организации данных:

Табличные (реляционные),

Иерархические,

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

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

Популярные СУБД — FoxPro, Access for Windows, Paradox. Для менее сложных применений вместо СУБД используются информационно-поисковые системы (ИПС), которые выполняют следующие функции:

хранение большого объема информации;

быстрый поиск требуемой информации;

добавление, удаление и изменение хранимой информации;

вывод ее в удобном для человека виде.

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

Если в базе нет никаких данных (пустая база), то это все равно полноценная база данных. Этот факт имеет методическое значение. Хотя данных в базе и нет, но информация в ней все-таки есть - это структура базы. Она определяет методы занесения данных и хранения их в базе. Простейший «некомпьютерный» вариант базы данных - деловой ежедневник, в котором каждому календарному дню выделено по странице. Даже если в нем не записано ни строки, он не перестает быть ежедневником, поскольку имеет структуру, четко отличающую его от записных книжек, рабочих тетрадей и прочей писчебумажной продукции.

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

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

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

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

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

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

СЭК может обслуживать одновременно достаточно большое число посетителей. Эта характеристика ограничена только программно-аппаратными возможностями СЭК. То есть в случае СЭК с точки зрения пользователя нет очередей ожидания обслуживания. Особенно это характерно для полностью или частично автоматизированных СЭК.

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

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

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

1.2 Реляционные базы данных

Реляционная СУБД (РСУБД; иначе Система управления реляционными базами данных, СУРБД) - СУБД, управляющая реляционными базами данных.

Понятие реляционный (англ. relation - отношение) связано с разработками известного английского специалиста в области систем баз данных Эдгара Кодда (Edgar Codd).

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

Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

– каждый элемент таблицы - один элемент данных;

– все столбцы в таблице однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.);

– каждый столбец имеет уникальное имя;

– одинаковые строки в таблице отсутствуют;

– порядок следования строк и столбцов может быть произвольным.

Базовыми понятиями реляционных СУБД являются: 1) атрибут; 2) отношения; 3) кортеж.

База данных, таким образом, это ни что иное, как набор таблиц. RDBS и ориентированные на записи системы организованы на основе стандарта B-Tree или методе доступа, основанном на индексации – Indexed Sequential Access Method (ISAM) и являются стандартными системами, использующимися в большинстве современных программных продуктов. Для обеспечения комбинирования таблиц для определения связей между данными, которые практически полностью отсутствуют в большинстве программных реализаций B-Tree и ISAM, используется языки, подобные SQL (IBM), Quel (Ingres) и RDO (Digital Equipment), причем стандартом отрасли в настоящее время стал язык SQL, поддерживаемый всеми производителями реляционных СУБД.

Оригинальная версия SQL – это интерпретируемый язык, предназначенный для выполнения операций над базами данных. Язык SQL был создан в начале 70х как интерфейс для взаимодействия с базами данных, основанными на новой для того времени реляционной теории. Реальные приложения обычно написаны на других языках, генерирующих код на языке SQL и передающих их в СУБД в виде текста в формате ASCII. Нужно отметить также, что практически все реальные реляционные (и не только реляционные) системы помимо реализации стандарта ANSI SQL, известного сейчас в последней редакции под именем SQL2 (или SQL-92), включают в себя дополнительные расширения, например, поддержка архитектуры клиент-сервер или средства разработки приложений.

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

Чтобы однозначно определить элемент, ему должны быть сопоставлены поле или набор полей, гарантирующих уникальность элемента внутри таблицы. Такое поле или поля называются первичным ключом (primary key) таблицы и часто являются числами. Если одна таблица содержит первичным ключ другой, это позволяет организовать связь между элементами разных таблиц. Это поле называется внешним ключом (foreign key).

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

Несмотря на рассмотренные недостатки реляционных баз данных, они обладают рядом достоинств:

разделение таблиц разными программами;

развернутый «код возврата» при ошибках;

высокая скорость обработки запросов (команда SELECT языка SQL; результатом выборки является таблица, которая содержит поля, удовлетворяющие заданному критерию);

сама концепция объектных баз данных довольно сложна и требует от программистов серьезного и длительного обучения;

относительно высокая скорость при работе с большими объемами данных.

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

Поэтому многие пользователи заинтересованы в комбинированном подходе, который бы им позволил воспользоваться достоинствами объектных баз данных, не отказываясь полностью от своих реляционных БД. Такие решения действительно существуют. Если переход от реляционной базы к объектной обходится слишком дорого, то применение последней в качестве расширения и дополнения реляционных СУБД часто является более экономичной альтернативой. Компромиссные решения позволяют соблюсти баланс между объектами и реляционными таблицами.

Объектно-реляционные адаптеры – э тот метод предполагает использование так называемого объектно-реляционного адаптера, который автоматически выделяет программные объекты и сохраняет их в реляционных базах данных. Объектно-ориентированные приложение работает как рядовой пользователь СУБД. Несмотря на некоторое снижение производительности, такой вариант позволяет программистам целиком сконцентрироваться на объектно-ориентированной разработке. Кроме того, все имеющиеся на предприятии приложения по-прежнему могут обращаться к данным, хранящимся в реляционной форме.

Некоторые объектные СУБД, например GemStone компании GemStone Systems, могут сами выполнять роль мощного объектно-реляционного адаптера, позволяя объектно-ориентированным приложениям обращаться к реляционным БД.

Объектно-реляционные адаптеры, такие как Odapter компании Hewlett-Packard для СУБД Oracle, можно с успехом использовать во многих областях, например в качестве связующего ПО, объединяющего объектно-ориентированные приложения с реляционными СУБД.

Объектно-реляционные шлюзы – п ри использовании такого метода пользователь взаимодействует с БД при помощи языка ООСУБД, а шлюз заменяет все объектно-ориентированные элементы этого языка на их реляционные компоненты. За это опять приходиться расплачиваться производительностью. Например, шлюз должен преобразовать объекты в набор связей, сгенерировать оригинальные идентификаторы (original identifier – OID) объектов и передать это в реляционную БД. Затем шлюз должен каждый раз, когда используется интерфейс реляционной СУБД, преобразовывать OID, найденный в базе, в соответствующий объект, сохраненный в РСУБД.

Производительность в рассмотренных двух подходах зависит от способа доступа к реляционной базе данных. Каждая РСУБД состоит из двух уровней: уровня управления данными (data manager layer) и уровня управления носителем (storage manager layer). Первый из них обрабатывает операторы на языке SQL, а второй отображает данные в базу. Шлюз или адаптер могут взаимодействовать как с уровнем данных (то есть обращаться к РСУБД при помощи SQL), так и с уровнем носителя (вызовами процедур низкого уровня). Производительность в первом случае намного ниже (например, система OpenODB фирмы Hewlett-Packard, которая может выполнять роль шлюза, поддерживает только на высоком уровне).

Гибридные СУБД – е ще одним решением может стать создание гибридных объектно-реляционных СУБД, которые могут хранить и традиционные табличные данные, и объекты. Многие аналитики считают, что будущее за такими гибридными БД. Ведущие поставщики реляционных СУБД начинают (или планируют) добавлять к своим продуктам объектно-ориентированные средства. В частности, Sybase и Informix собираются в следующих версиях СУБД ввести поддержку объектов. Подобные разработки намерены вести и независимые фирмы. Например, компания Shores готовится оснастить объектно-ориентированными средствами СУБД Oracle8, выпуск которой намечен на конец 1996 г.

С другой стороны, производители объектных СУБД, такие как компания Object Design, сознают, что объектно-ориентированные базы данных в обозримом будущем не заменят реляционные СУБД. Это вынуждает их создавать шлюзы для поддержки реляционных и иерархических баз данных иди различного рода интерфейсы, характерным примером которых является объектно-реляционный интерфейс Ontos Integration Server фирмы Ontos, применяемый в сочетании с ее ООБД Ontos/DB.

1.3 Многомерные базы данных

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

В специализированных СУБД, основанных на многомерном представлении данных, данные организованы не в форме реляционных таблиц, а в виде упорядоченных многомерных массивов:

Гиперкубов – все хранимые в БД ячейки должны иметь одинаковую размерность, то есть находиться в максимально полном базисе измерений

Поликубов – каждая переменная хранится с собственным набором измерений, и все связанные с этим сложности обработки перекладываются на внутренние механизмы системы.

Использование многомерных БД в системах оперативной аналитической обработки имеет следующие достоинства:

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

поиск и выборка данных осуществляется значительно быстрее, чем при многомерном концептуальном взгляде на реляционную базу данных -среднее время ответа на нерегламентированный запрос при использовании многомерной СУБД обычно на один — два порядка меньше, чем в случае реляционной СУБД с нормализованной схемой данных

структура и интерфейсы наилучшим образом соответствуют структуре аналитических запросов. Этот способ более родственен ментальной модели человека, так как аналитик привык оперировать плоскими таблицами. Производя сечение куба двумерной плоскостью в том или ином направлении, легко получить взаимозависимость любой пары величин относительно выбранной меры. Например, как изменялась стоимость изготовления изделия (мера) во времени (измерение) в разрезе по участкам, цехам и производствам (другое измерение)

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

MOLAP могут работать только со своими собственными многомерными БД и основываются на патентованных технологиях для многомерных СУБД, поэтому являются наиболее дорогими. Эти системы обеспечивают полный цикл OLAP-обработки и либо включают в себя, помимо серверного компонента, собственный интегрированный клиентский интерфейс, либо используют для связи с пользователем внешние программы работы с электронными таблицами. Для обслуживания таких систем требуется специальный штат сотрудников, занимающихся установкой, сопровождением системы, формированием представлений данных для конечных пользователей.

Еще к недостаткам MOLAP-моделей можно отнести:

не позволяют работать с большими БД. На сегодняшний день их реальный предел – 10-20 гигабайт. К тому же за счет денормализации и предварительно выполненной агрегации 20 гигабайт в многомерной базе, как правило, соответствуют (по оценке Кодда) в 2.5-100 раз меньшему объему исходных детализированных данных, то есть в лучшем случае нескольким гигабайтам.

по сравнению с реляционными, очень неэффективно используют внешнюю память. Ячейки гиперкуба хранятся в них в виде логически упорядоченных массивов (блоков фиксированной длины), причем именно такой блок является минимальной индексируемой единицей. Хотя в многомерных СУБД блоки, не содержащие ни одного определенного значения, не хранятся, это решает проблему только частично. Поскольку данные хранятся в упорядоченном виде, неопределенные значения не всегда удаляются полностью, да и то лишь в том случае, когда за счет выбора порядка сортировки данные удается организовать в максимально большие непрерывные группы. Но порядок сортировки, чаще всего используемый в запросах, может не совпадать с порядком, в котором они должны быть отсортированы в целях максимального устранения несуществующих значений. Таким образом, при проектировании многомерной БД часто приходится жертвовать либо быстродействием (а это одно из первых достоинств и главная причина выбора именно многомерной СУБД), либо внешней памятью (хотя, как отмечалось, максимальный размер многомерных БД ограничен)

отсутствуют единые стандарты на интерфейс, языки описания и манипулирования данными

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

объем исходных данных для анализа не слишком велик (не более нескольких гигабайт), то есть уровень агрегации данных достаточно высок.

набор информационных измерений стабилен (поскольку любое изменение в их структуре почти всегда требует полной перестройки гиперкуба).

время ответа системы на нерегламентированные запросы является наиболее критичным параметром.

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

2. Практическая часть

2.1 Постановка задачи

2.1.1 Цель решения задачи

Руководство предприятия ООО «Строй-дизайн», осуществляющего деятельность, связанную с выполнением работ по ремонту помещений, желает произвести автоматизацию расчетов по вычислению стоимоти выполняемых работ для оперативного предоставления счета клиенту. Это поможет сократить время расчетов, избежать ошибок, связанных с человеческим фактором и повысить степень удовлетворенности клиента оказанными услугами. Поэтому принято решение вести расчет стоимости выполненных работ и создание счета на их оплату, в которых должны быть наименование работ, объем выполняемых работ, цена за единицу продукции, стоимость работы. Задача, которая будет решаться в программной среде MS Excel ежемесячно, называется «Расчет стоимости выполненных работ».

Цель решения данной задачи состоит в своевременности расчетов стоимости работ для оперативного предоставления подробно составленного счета клиентам.

2.1.2 Условие задачи

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

Наименование
работы

Единицы
измерения

Объем
выполняемых
работ

Стоимость
работ, руб.

Q i

C і

S i


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

Прайс-лист

Наименование работы

Цена за единицу продукции, руб.

Латинские буквы в таблице указывают на элементы соответствующих расчетных формул.

В результате следует получить счет со следующими реквизитами: наименование работы, цена за единицу продукции (руб.), объем выполняемых работ, стоимость работы (руб.), № счета (заполняется автоматически). ФИО клиента и дата вписываются вручную. Информация выдается в следующих документах:

Структура результирующего документа «Счет»

ООО «Стройсервис»

СЧЕТ №

Дата

20__

ФИО клиента


п/п

Наименование
работы

Единицы
измерения

Объем
выполняемых
работ

Цена за единицу продукции, руб.

Стоимость
работ, руб.

Замена батарей

шт.

Наклейка обоев

м 2

Замена труб

Настилка паркета

м 2

ИТОГО:

ΣS i

НДС:

N

СУММА С НДС:

SN

Гл. бухгалтер

Кроме того, информацию, находящуюся в таблицах для анализа, необходимо представить в виде диаграмм.

В технологии организовать межтабличные связи для автоматического формирования документа «Счет» при помощи функций ВПР или ПРОСМОТР.

2.2. Компьютерная модель решения задачи

2.2.1. Информационная модель решения задачи

Информационная модель, отражающая взаимосвязь исходных и результирующих документов, приведена на рис. 2.


2.2.2. Аналитическая модель решения задачи

Для получения документа « Расчет стоимости выполняемых
работ» необходимо рассчитать следующие показатели:

    стоимость работ, руб.;

    НДС, руб.;

    сумма с НДС, руб..

    Расчеты выполняются по следующим формулам:

    S i = C i ∙Q i ,

    N = ΣS i ∙ 0,18,

    SN = ΣS i + N,

    где S i
    - стоимость i -й работы; C i
    - цена за i -ю единицу продукции; Q i - обїем выполняемой i -й работы; N - НДС; SN - сумма с НДС.

    2.2.3. Технология решения задачи MS Excel

    Решение задачи средствами MS Excel

    Вызовите Excel:

    нажмите кнопку «Пуск»;

    выберите в главном меню команду «Программы»;

    в меню Microsoft Office выберите MS Excel.

    Переименуйте «Лист 1» в «Прайс-лист»:

    выберите в контекстном меню команду «Переименовать» и нажмите левую кнопку мыши;

    нажмите клавишу «Enter».

    Введите заголовок таблицы «Прайс-лист»:

    наберите на клавиатуре «Прайс-лист»;

    4. Отформатируйте заголовок:


    Рис. 2. Пример выделения группы ячеек

    на панели инструментов в закладке «Главная» выберите раздел «Выравнивание» и нажмите кнопку .

    5. Отформатируйте ячейки А2:B2 под ввод длинных заголовков:

    выделите ячейки А2:B2;

    выполните команду «Выравнивание» в разделе «Формат ячеек» меню «Главная» на панели инструментов;

    выберите закладку «Выравнивание»;

    в группе опций «Отображение» установите флажок опции «переносить по словам» (рис. 3);


    Рис. 3. Задание переноса слов при вводе в ячейку длинных

    заголовков

    нажмите кнопку «ОК».

    6. Введите в ячейки А2:B2 информацию, представленную на рис. 4.


    Рис. 4. Имена полей таблицы «Прайс-лист»

    7. Отформатируйте ячейки А3:A8 для ввода текстовых символов:

    выделите ячейки А3:A8;

    на панели инструментов в меню «Главная» выберите «Ячейки», где в пункте «Формат» выполните команду «Формат ячеек»;

    выберите закладку «Число»;

    выберите формат «Текстовый» (рис. 5);

    нажмите кнопку «ОК».


    Рис. 5. Выбор формата ячеек

    8. Повторите п. 9 для диапазона ячеек B3:B8, выбрав формат «Числовой».

    9. Введите исходные данные (рис. 6).


    Рис. 6. Вид таблицы «Прайс-лист»

    10. Присвойте имя группе ячеек:

    выделите ячейки А3:В8;

    выберите команду «Присвоить имя» в разделе «Определенные имена» меню «Формулы» (рис. 7);


    Рис. 7. Вид окна «Создание имени»

    нажмите кнопку «ОК.».

    11. Переименуйте «Лист 2» в «Расчет стоимости работ» (аналогично действиям п. 2).

    12. Создайте таблицу «Расчет стоимости выполняемых работ» (аналогично действиям пунктов 3 — 7, 8) (рис. 8).


    Рис. 8. Вид таблицы «Расчет стоимости работ»

    13. Заполните графы «Наименование работы» и «Цена за единицу продукции, руб.»:

    сделайте ячейку А3 активной;

    в меню «Данные» выберите команду «Проверка данных», в поле «Тип данных» которой выберите «Список»;

    введите значение в поле «Источник», выделив диапазон A3:A8 в «Прайс-лист» (рис. 9);


    Рис. 9. Настройка списка плательщиков

    нажмите кнопку «ОК»;

    для того чтобы ввод наименования работы из списка осуществлялся в каждой ячейке столбца А («Наименование работы»), сделайте ячейку А3 активной и, установив курсор на маркер в правом нижнем углу, щелкните левой клавишей мыши и протяните его до ячейки А6 (рис. 10);


    Рис. 10. Вид листа «Расчет стоимости работ» при настройке списка

    в поле «Выберите функцию» нажмите «ВПР» (рис. 11);


    Рис. 11. Вид первого окна мастера функций

    нажмите кнопку «OK»;

    введите наименование работы в поле «Искомое_значение», щелкнув по ячейке А3;

    нажмите «Enter»;

    введите информацию в поле «Таблица»;

    воспользуйтесь командой «Использовать в формуле» меню «Формулы», выбрав «Вставить имена»;

    выделите «Имя:» «Прайс_лист» (рис. 12);


    Рис. 12. Ввод имени массива в качестве аргумента формулы

    нажмите кнопку «OK»;

    нажмите «Enter»;

    введите информацию — цифру 2 в поле «Номер_столбца»;

    введите информацию — цифру 0 в поле «Интервальный_просмотр» (рис. 13);


    Рис. 13. Вид второго окна мастера функций

    Нажмите кнопку «ОК»;

    14. Заполните графу «Объем выполняемых работ».

    15. Введите наименования работ в ячейки А4:А6:

    Сделайте ячейку А4 активной;

    Щелкните на кнопку рядом с ячейкой А4 и из предложенного списка выберите наименование работ — Замена батарей, шт. Ячейка С4 — «Цена за единицу продукции, руб.» будет заполнена автоматически (рис. 14);


    Рис. 14. Автоматическое заполнение Цены за единицу продукции по ее наименованию

    аналогично заполните ячейки А5:А6, ячейки С5:С6 будут также заполнены автоматически.

    16. Заполнить графу «Стоимость работы, руб»
    таблицы «Расчёт стоимости выполняемых работ».
    Для этого:

    занести в ячейку D3 формулу =B3*C3;

    размножить введённую в ячейку D3 формулу для остальных ячеек D4:D6 данной графы (с помощью функции автозаполнения).

    Таким образом, будет выполнен цикл, управляющим параметром которого является номер строки.

    17. Заполненная таблица выглядит следующим образом (рис. 15).


    Рис. 15. Результат заполнения таблицы «Расчеты стоимости работ»

    18. Переименуйте «Лист 3» в « Счет» (аналогично действиям п. 2).

    19. На рабочем листе «Счет» создайте необходимую таблицу, рукодствуясь предшествующими пунктами.

    20. С помощью функции ПРОСМОТР() создайте межтабличные связи. Однако перед этим отсортируйте значения таблицы «Расчеты стоимости выполняемых работ» в порядке возрастания по столбцу «Наименование работ». Для этого:

    выделите диапазон ячеек А2:D6;

    выберите пункт «Сортировка и фильтр» на Главной, а там «Настраиваемая сортировка»;

    в выпавшем окне выберите «Сортировать по» «Наименованию работ»;

    нажмите кнопку «ОК».

    воспользуйтесь командой «Вставить функцию» меню «Формулы»;

    в поле «Выберите функцию» нажмите «ПРОСМОТР»;

    нажмите кнопку «OK»;

    введите наименование работы в поле «Искомое_значение», щелкнув по ячейке С9;

    нажмите «Enter»;

    введите информацию в поле «Просматриваемый вектор», а именно ‘Расчет стоимости работ’!$A$3:$A$6;

    нажмите «Enter»;

    введите информацию в поле «Искомый вектор», а именно ‘Расчет стоимости работ’!$С$3:$С$6;

    нажмите «Enter» (рис. 16);


    Рис. 16. Вид второго окна мастера функции ПРОСМОТР

    нажмите кнопку «ОК»;

    22. Повторите действия, аналогичные п. 22 для ячеек D9:D12, E9:E12.

    23. Заполнить графу «ИТОГО» таблицы следующим образом:

    занести в ячейку F13 формулу =СУММ(F9:F12) .

    24. Заполните графу «НДС». Для этого занести в ячейку F14 формулу =F13*0,18.

    25. Заполните графу «СУММА С НДС». Для этого занести в ячейку F15 формулу =F13+F14 .

    26. В результате у Вас должна получиться таблица, пркдставленная на рис. 17.


    Рис. 17. Форма счета на оплату выполненных работ

    27. Для анализа информации о стоимости каждого вида работ по полученному заказу:

    сделайте активным лист «Счет»;

    выделите диапазон C9:F12;

    выберите команду «Гистограмма» в разделе «Диаграммы» меню «Вставка»;

    выберите необходимый тип гистограммы;

    переименуйте гистограмму в «Cтоимость каждого вида работ» (рис. 18).


    Рис. 18. Гистограмма «Стоимость каждого вида работ»

    2.3. Результаты компьютерного эксперимента и их анализа

    2.3.1. Результаты компьютерного эксперимента

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

    Прайс-лист

    Наименование работы

    Цена за единицу продукции, руб.

    Замена ванны, шт.

    Замена труб, м

    Наклейка обоев, м2

    Настилка паркета, м2

    Побелка потолка, м2

    Расчет стоимости выполняемых работ

    Наименование работы

    Объем выполняемых работ

    Цена за единицу продукции, руб.

    Стоимость работы, руб.

    Замена батарей, шт.

    1000

    Замена труб, м

    Наклейка обоев, м2

    1400

    Настилка паркета, м2

    1200

    ООО «Строй-дизайн»

    СЧЕТ №

    Дата


    .
    .20

    ФИО клиента

    № п/п

    Наименование работы

    Объем выполняемых работ

    Цена за единицу продукции, руб.

    Стоимость работ, руб.

    Замена батарей, шт.

    1000

    Наклейка обоев, м2

    1400

    Замена труб, м

    Настилка паркета, м2

    1200

    ИТОГО:

    4560

    НДС:

    820,8

    СУММА С НДС:

    5380,8

    В результате решения задачи полученные с помощью компьютера ведомости совпадают с тестовыми.

    2.3.2. Анализ полученных результатов

    Таким образом, формирование результирующего документа (таблицы) «Счет» позволяет решить поставленную задачу — сократить время на выполнения расчетов стоимости работ, исключить ошибок, обусловленных с человеческим фактором и повысить степень удовлетворенности клиента. Создание различных диаграмм (гистограмм, графиков) на основе данных таблиц средствами MS Excel позволяет не только наглядно представлять результаты обработки информации для проведения анализа с целью принятия решений, но и достаточно быстро осуществлять манипуляции в области их построения в пользу наиболее удобного представления результатов визуализации по задаваемым пользователем (аналитиком) параметрам.

    Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД).

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

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

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

    Основным достоинством реляционных баз данных совместимость с самым популярным языком запросов SQL. С помощью единственного запроса на этом языке можно соединить несколько таблиц во временную таблицу и вырезать из нее требуемые строки и столбцы (селекция и проекция). Так как табличная структура реляционной базы данных интуитивно понятна пользователям, то и язык SQL является простым и легким для изучения. Реляционная модель имеет солидный теоретический фундамент, на котором были основаны эволюция и реализация реляционных баз данных. На волне популярности, вызванной успехом реляционной модели, SQL стал основным языком для реляционных баз данных.

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

    В практической части была решена средства MS Excel 2010 поставленная задача в отношении условного предприятия – фирмы ООО «Строй-дизайн», которая осуществляет деятельность, связанную с выполнением работ по ремонту помещений. Были построены таблицы по приведенным данным в задании. Выполнен расчет стоимости работ по полученному заказу, данные расчета занести в таблицу. Организованы межтабличные связи с использованием функций ВПР или ПРОСМОТР для автоматического формирования счета, выставляемого клиенту для оплаты выполняемых работ. Сформирован и заполнен документ «Cчет на оплату выполненных работ». Приведены результаты расчета стоимости каждого вида работ по полученному заказу представить в графическом виде.

    Компьютерная обучающая программа по дисциплине Информатика» / А.Н. Романов, В.С. Торопцов, Д.Б. Григорович, Л.А. Галкина, А.Ю. Артемьев, Н.И. Лобова, К.Е. Михайлов, Г.А. Жуков, О.Е. Кричевская, С.В. Ясеновский, Л.А. Вдовенко, Б.Е. Одинцов, Г.А. Титоренко, Г.Д. Савичев, В.И. Гусев, С.Е. Смирнов, В.И. Суворова, Г.В. Федорова, Г.Б. Коняшина. – М.: ВЗФЭИ, 2000. Дата обновления 24.11.2010. – Доступ по логину и паролю.

    Компьютерная обучающая программа по дисциплине «Информационные системы в экономике» / А.Н. Романов, В.С. Торопцов, Д.Б. Григорович, Л.А. Галкина, А.В. Мортвичев, Б.Е. Одинцов, Г.А. Титоренко, Л.А. Вдовенко, В.В. Брага, Г.Д. Савичев, В.И. Суворова. – М.: ВЗФЭИ, 2005. Дата обновления 15.10.2010. – URL: . Доступ по логину и паролю.

    СУБД ПОНЯТИЕ И ВИДЫ МОДЕЛЕЙ БАЗ ДАННЫХ СБОР ДАННЫХ СОЦИОЛОГИЧЕСКОГО ХАРАКТЕРА С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ БАЗ ДАННЫХ. СОЗДАНИЕ ТАБЛИЦ И ФОРМ БД 2013-11-05