План-конспект урока

Тема: Базы данных. Основные объекты БД. СУБД.

Цель урока:

  • 1. Познавательная - познакомить учащихся с:
    • определением базы данных и СУБД,
    • их основными типами (моделями),
    • интерфейсом программы Ms ACCESS,
    • основными объектами БД,
    • разными способами создания таблиц.
  • 2. Развивающая
    • Учить строить аналогии, выделять главное, ставить и решать проблемы.
  • 3. Воспитательная
    • Воспитывать аккуратность, внимательность, вежливость и дисциплинированность.

План урока:

  • 1. Актуализация опорных знаний.
  • 2. Запуск программ на выполнение;
  • 3. Ввод данных в таблицу.
  • 2. Определение БД И СУБД.
  • 3. Типы СУБД.
  • 4. Реляционная СУБД. Таблица, запись, поле.
  • 5. Самостоятельная работа на компьютере.
  • 6. Закрепление нового материала.
  • 7. Итоги урока.
  • 1 Определение БД И СУБД

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

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

    БД делятся на фактографические и документальные. Фактографические БД содержат короткие сведения об объектах, поданные в точно определенном формате (1-3), например, Автор, название, год издания … В документальных БД содержится информация разного типа: текстовая, звуковая, графическая, мультимедийная (4, 5). Например, БД современной музыки может содержать тексты и ноты песен, фотографии авторов, звуковые записи, видеоклипы. Сама по себе БД содержит только информацию – «Информационный склад» –и не может обслуживать запросы пользователя на поиск и обработку информации. Обслуживание пользователя осуществляет СИСТЕМА УПРАВЛЕНИЯ БАЗОЙ ДАННЫХ. СУБД – Это ПО, которое позволяет создавать БД, обновлять и дополнять информацию, обеспечивать гибкий доступ к информации. СУБД создает на экране компьютера определенную среду для работы пользователя (интерфейс), и имеет определенные режимы работы и систему команд. Именно на основе СУБД создаются и функционируют информационно-поисковые системы(WWW).

    3. Типы СУБД

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

    • Иерархические (в виде дерева),
    • Сетевые,
    • Реляционные.

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

    4. Реляционная СУБД. Таблица, запись, поле.

    Реляционной (от английского “ relation” - отношение) называется БД, которая содержит информацию, организованную в виде прямоугольной таблицы. Каждая строка таблицы содержит информацию об одном конкретном объекте БД (книге, сотруднике, товаре), а каждый столбец – конкретную характеристику этого объекта (фамилия, название, цена). Строки такой таблицы называются записями, столбцы – полями. Каждая запись должна отличаться от другой значением хотя бы одного поля, которое называется ключом. Ключевое поле – это поле или группа полей, которые однозначно определяют запись. Например, табельный номер сотрудника, код изделия, номер автомобиля. Таб_№ ФИО Дата_рожд Дата_приема Должность Оклад 001 < Иванов И.И. 12.05.65 1.02.80 директор 1000 002 Петров П.П. 30.10.75 2.03.95 бугалтер 500 003 Сидоров С.С 4.01.81 4.06.00 исполнитель 100 Каждое поле имеет свой формат и тип. Реальные БД состоят, как правило, из нескольких таблиц, связанных между собой каким-нибудь полем и, при запросе к такой БД можно использовать информацию из разных таблиц. Основные объекты БД:

    • Таблицы - основные объекты БД, где хранится информация,
    • Запросы – предназначенные для выбора нужных данных из одной или нескольких взаимосвязанных таблиц.
    • Формы – предназначенные для ввода, просмотра и редактирования взаимосвязанных данных в удобном виде.
    • Отчёты – формирование данных в удобном для просмотра виде и при необходимости их печати.

    5. Самостоятельная работа на компьютере

    На сетевом диске, в папке «ЗАДАНИЯ ДЛЯ БД» открыть презентацию «Базы данных и СУБД», прочитать ее и ответить письменно на вопросы:

    • 1. Какое основное назначение БД?
    • 2. По каким критериям классифицируются БД? Укажите критерий и виды, соответственно этого критерия.
    • 3. Что такое ключевое поле в БД?
    • 4. Какой основной элемент БД?
    • 5. Какие операции можно производить с помощью СУБД с БД?
    • 6. Основные типы данных в таблицах СУБД.

    6. Итоги урока

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

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

    Создание базы данных. Ввод и форматирование данных

    • 1. Включите компьютер. Загрузите СУБД ACCESS. Сначала нужно создать новую базу данных.
    • 2. Выполним следующую последовательность действий: в меню Файл выберем команду Создать. Имя файла: skaz.mdb. OK. Перед вами появилось диалоговое окно «База данных».
    • 3. Внимательно прочитайте назначение кнопок на панели инструментов, медленно перемещая курсор мыши по кнопкам.
    • 4. После этого создайте таблицу, выполнив следующую последовательность действий: Таблица/Создать/Новая таблица.

    Создание таблицы, то есть определение входящих в таблицу полей, производится заполнением специальной таблицы: Поле Тип данных Описание

    • 5. Заполните такую таблицу, внеся в нее следующие данные:

    Поле Тип данных Описание № Счетчик Персонаж Текстовый Профессия Текстовый Особые приметы Текстовый Герой Логический Положительный или отрицательный герой

    • 6. Поле № не обязательное, мы его вводим для того, чтобы определить ключевое поле, так как любая таблица должна иметь ключ.
    • 7. Созданную таблицу нужно сохранить, дав ей имя с помощью команд: Файл/Сохранить как..., Имя таблицы: «Персонаж», OK.
    • 8. Введите информацию в таблицу Таблица/«Персонаж»/Открыть и обычным образом введите данные, например такие:

    № Персонаж Профессия особые приметы герой

    • 1 Буратино деревянный человечек длинный нос Да
    • 2 Папа Карло Шарманщик Да
    • 3 Карабас Барабас директор кукольного театра длинная борода, достающая до пола Нет
    • 4 Лиса Алиса Мошенница хромая на одну ногу Нет
    • 5 Кот Базилио Мошенник слепой на оба глаза Нет
    • 6 Мальвина артистка театра девочка с голубыми волосами Да
    • 7 Дуремар Фармацевт характерный запах тины Нет
    • 8 Тортилла хранительница золотого ключика черепаха Да
    • 9. При помощи мыши выделите:
      • а) запись 5,
      • б) запись 3,
      • в) с третьей по седьмую запись. Отмените выделение.
      • г) Выделите все записи. Отмените выделение.
      • д) Выделите поле «Персонаж».
      • е) Выделите одновременно поля: «Профессия», «Особые приметы» и «Герой», отмените выделение.
      • ж) Выделите все поля. Это можно сделать при помощи мыши или в меню Правка выбрать команду Выделить все записи.
    • 10. Отмените выделение.
    • 11. Выделите:
      • а) В поле «Особые приметы» отметьте шестую запись.
      • б) В поле «Персонаж» выделите с четвертой по шестую запись.
      • в) Не отпуская кнопку мыши, отметьте эти же записи в полях «Особые приметы» и «Герой».
    • 12. Отмените выделение.
    • 13. Выделите всю таблицу.
    • 14. Отмените выделение.
    • 15. Измените ширину каждого столбца, так чтобы ширина колонок была минимальной, но был виден весь текст.

    Это можно сделать при помощи мыши, раздвинув столбцы или следующим образом. Выделите нужный столбец и нажмите правую кнопку мыши, в контекстном меню выберете команду «Ширина столбца»; в открывшемся окне нажмите кнопку По ширине данных. Проделайте такую же работу со всеми полями. Высоту строки можно изменить аналогичным образом с помощью мыши или в меню Формат командой Высота строки. Причем достаточно отредактировать одну строку, высота остальных строк изменяется автоматически.

    • 16. Любым способом измените высоту строки и сделайте ее равной 30.
    • 17. Измените шрифт таблицы на Arial Cyr, размер шрифта 14, полужирный.

    Изменить шрифт можно так: вывести указатель мыши за пределы таблицы и нажать левую кнопку мыши, в контекстном меню выбрать Шрифт или в меню Правка на панели инструментов выбором команды Шрифт.

    • 18. Измените шрифт текста на Times New Roman Cyr, размер шрифта 10.
    • 19. Измените ширину полей.
      • а) Сделайте столбец «Персонаж» шириной 20.
      • б) Столбец «Особые приметы» шириной 25.

    Вы видите, что текст в этих полях напечатался в две строки.

    • 20. Подгоните ширину столбцов так, чтобы текст вмещался полностью.
    • 21. Выполните сортировку таблицы по полю «Персонаж» в порядке, обратном алфавитному.

    Это можно сделать так. Выделите поле «Персонаж» и нажмите кнопку Сортировка по убыванию на панели инструментов.

    • 22. Верните таблицу в исходное состояние.

    Этой статьей мы начинаем новый цикл, посвященный базам данных, современным технологиям доступа к данным и их обработки. На протяжении данного цикла мы планируем рассмотреть наиболее популярные настольные и серверные системы управления базами данных (СУБД), механизмы доступа к данным (OLD DB, ADO, BDE и др.) и утилиты для работы с базами данных (средства администрирования, генераторы отчетов, средства графического представления данных). Кроме того, мы планируем уделить внимание методам публикации данных в Internet, а также таким популярным способам обработки и хранения данных, как OLAP (On-Line Analytical Processing), и созданию хранилищ данных (Data Warehousing).

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

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

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

    Реляционная модель данных

    Реляционная модель данных была предложена Е.Ф.Коддом (Dr. E.F.Codd), известным исследователем в области баз данных, в 1969 году, когда он был сотрудником фирмы IBM. Впервые основные концепции этой модели были опубликованы в 1970 г. «A Relational Model of Data for Large Shared Data Banks», CACM, 1970, 13 N 6).

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

    Любая таблица реляционной базы данных состоит из строк (называемых также записями ) и столбцов (называемых также полями ). В данном цикле мы будем использовать обе пары терминов.

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

    Данные в таблицах удовлетворяют следующим принципам:

    1. Каждое значение, содержащееся на пересечении строки и колонки, должно быть атомарным (то есть не расчленяемым на несколько значений).
    2. Значения данных в одной и той же колонке должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД.
    3. Каждая запись в таблице уникальна, то есть в таблице не существует двух записей с полностью совпадающим набором значений ее полей.
    4. Каждое поле имеет уникальное имя.
    5. Последовательность полей в таблице несущественна.
    6. Последовательность записей также несущественна.

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

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

    Итак, теперь мы знаем, что реляционные базы данных состоят из таблиц. Для иллюстрации некоторых теоретических положений и для создания примеров нам необходимо выбрать какую-нибудь базу данных. Чтобы не «изобретать колесо», мы воспользуемся базой данных NorthWind, входящей в комплект поставки Microsoft SQL Server и Microsoft Access.

    Теперь давайте рассмотрим связи между таблицами.

    Ключи и связи

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

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

    Если первичный ключ состоит из более чем одной колонки, он называется составным первичным ключом (composite primary key ).

    Типичная база данных обычно состоит из нескольких связанных таблиц. Фрагмент таблицы Orders (заказы).

    Поле CustomerID этой таблицы содержит идентификатор клиента, разместившего данный заказ. Если нам нужно узнать, как называется компания, разместившая заказ, мы должны поискать это же значение идентификатора клиента в поле CustomerID таблицы Customers и в найденной строке прочесть значение поля CompanyName. Иными словами, нам нужно связать две таблицы, Customers и Orders, по полю CustomerID. Колонка, указывающая на запись в другой таблице, связанную с данной записью, называется внешним ключом (foreign key ). Как видим, в случае таблицы Orders внешним ключом является колонка CustomerID (рис. 1).

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

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

    Если каждый клиент в таблице Customers может разместить только один заказ, говорят, что эти две таблицы связаны соотношением один-к-одному (one-to-one relationship ). Если же каждый клиент в таблице Customers может разместить ноль, один или много заказов, говорят, что эти две таблицы связаны соотношением один-ко-многим (one-to-many relationship ) или соотношением master-detail . Подобные соотношения между таблицами используются наиболее часто. В этом случае таблица, содержащая внешний ключ, называется detail-таблицей , а таблица, содержащая первичный ключ, определяющий возможные значения внешнего ключа, называется master-таблицей .

    Группа связанных таблиц называется схемой базы данных (database schema ). Информация о таблицах, их колонках (имена, тип данных, длина поля), первичных и внешних ключах, а также иных объектах базы данных, называется метаданными (metadata ).

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

    Ссылочная целостность

    Выше мы уже говорили о том, что первичный ключ любой таблицы должен содержать уникальные непустые значения для данной таблицы. Это утверждение является одним из правил ссылочной целостности (referential integrity ). Некоторые (но далеко не все) СУБД могут контролировать уникальность первичных ключей. Если СУБД контролирует уникальность первичных ключей, то при попытке присвоить первичному ключу значение, уже имеющееся в другой записи, СУБД сгенерирует диагностическое сообщение, обычно содержащее словосочетание primary key violation . Это сообщение в дальнейшем может быть передано в приложение, с помощью которого конечный пользователь манипулирует данными.

    Если две таблицы связаны соотношением master-detail , внешний ключ detail- таблицы должен содержать только те значения, которые уже имеются среди значений первичного ключа master- таблицы. Если корректность значений внешних ключей не контролируется СУБД, можно говорить о нарушении ссылочной целостности. В этом случае, если мы удалим из таблицы Customers запись, имеющую хотя бы одну связанную с ней detail- запись в таблице Orders, это приведет к тому, что в таблице Orders окажутся записи о заказах, размещенных неизвестно кем. Если же СУБД контролирует корректность значений внешних ключей, то при попытке присвоить внешнему ключу значение, отсутствующее среди значений первичных ключей master-таблицы, либо при удалении или модификации записей master-таблицы, приводящих к нарушению ссылочной целостности, СУБД сгенерирует диагностическое сообщение, обычно содержащее словосочетание foreign key violation , которое в дальнейшем может быть передано в пользовательское приложение.

    Большинство современных СУБД, например Microsoft Access 97, Microsoft Access 2000 и Microsoft SQL Server 7.0, способны контролировать соблюдение правил ссылочной целостности, если таковые описаны в базе данных. Для этой цели подобные СУБД используют различные объекты баз данных (мы обсудим их чуть позже). В этом случае все попытки нарушить правила ссылочной целостности будут подавляться с одновременной генерацией диагностических сообщений или исключений (database exceptions ).

    Введение в нормализацию данных

    Процесс проектирования данных представляет собой определение метаданных в соответствии с задачами информационной системы, в которой будет использоваться будущая база данных. Подробности о том, как производить анализ предметной области, создавать диаграммы «сущность-связь» (ERD - entity-relationship diagrams ) и модели данных, выходят за рамки данного цикла. Интересующиеся этими вопросами могут обратиться, например, к книге К.Дж.Дейта «Введение в системы баз данных» («Диалектика», Киев, 1998).

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

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

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

    Первая нормальная форма

    Проиллюстрируем процесс нормализации на примере, использующем данные из базы NorthWind. Предположим, что мы регистрируем все заказанные продукты в следующей таблице . Структура этой таблицы имеет вид (рис. 2).

    Чтобы таблица соответствовала первой нормальной форме, все значения ее полей должны быть атомарными, и

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

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

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

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

    Вторая нормальная форма

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

    Таблица OrderedProducts находится в первой, но не во второй нормальной форме, так как поля CustomerID, Address и OrderDate зависят только от поля OrderID, являющегося частью составного первичного ключа (OrderID, ProductID).

    Чтобы перейти от первой нормальной формы ко второй, нужно выполнить следующие шаги:

    1. Определить, на какие части можно разбить первичный ключ, так чтобы некоторые из неключевых полей зависели от одной из этих частей (эти части не обязаны состоять из одной колонки! ).
    2. Создать новую таблицу для каждой такой части ключа и группы зависящих от нее полей и переместить их в эту таблицу. Часть бывшего первичного ключа станет при этом первичным ключом новой таблицы.
    3. Удалить из исходной таблицы поля, перемещенные в другие таблицы, кроме тех их них, которые станут внешними ключами.

    Например, для приведения таблицы OrderedProducts ко второй нормальной форме, нужно переместить поля CustomerID, Address и OrderDate в новую таблицу (назовем ее OrdersInfo), при этом поле OrderID станет первичным ключом новой таблицы (рис. 3).

    В результате новые таблицы приобретут такой вид. Однако таблицы, находящиеся во второй, но не в третьей нормальной форме, по-прежнему содержат аномалии модификации данных. Вот каковы они, например, для таблицы OrdersInfo:

    • Адрес конкретного клиента по-прежнему может содержаться в базе данных только тогда, когда клиент заказал хотя бы один продукт.
    • Удаление записи о заказе в таблице OrdersInfo приведет к удалению записи о самом клиенте.
    • Если заказчик сменил адрес, придется обновить несколько записей (хотя, как правило, их меньше, чем в предыдущем случае).

    Устранить эти аномалии можно путем перехода к третьей нормальной форме .

    Третья нормальная форма

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

    Таблица OrderDetails уже находится в третьей нормальной форме. Неключевое поле Quantity полностью зависит от составного первичного ключа (OrderID, ProductID). Однако таблица OrdersInfo в третьей нормальной форме не находится, так как содержит зависимость между неключевыми полями (она называется транзитивной зависимостью - transitivedependency ) - поле Address зависит от поля CustomerID.

    Чтобы перейти от второй нормальной формы к третьей, нужно выполнить следующие шаги:

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

    Для приведения таблицы OrdersInfo к третьей нормальной форме создадим новую таблицу Customers и переместим в нее поля CustomerID и Address. Поле Address из исходной таблицы удалим, а поле CustomerID оставим - теперь это внешний ключ (рис. 4).

    Итак, после приведения исходной таблицы к третьей нормальной форме таблиц стало три - Customers, Orders и OrderDetails.

    Преимущества нормализации

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

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

    Изменение адреса клиента или даты регистрации заказа теперь требует изменения только одной записи.

    Как проектируют базы данных

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

    Еще один способ создать таблицы, ключи и связи в базе данных - это написание так называемого DDL-сценария (DDL - Data Definition Language; о нем мы поговорим чуть позже).

    Наконец, есть еще один способ, который становится все более и более популярным, - это использование специальных средств, называемых CASE-средствами (CASE означает Computer-Aided System Engineering). Существует несколько типов CASE-средств, но для создания баз данных чаще всего используются инструменты для создания диаграмм «сущность-связь» (entity-relationship diagrams, E/R diagrams). С помощью этих инструментов создается так называемая логическая модель данных, описывающая факты и объекты, подлежащие регистрации в ней (в таких моделях прототипы таблиц называются сущностями (entities), а поля - их атрибутами (attributes). После установления связей между сущностями, определения атрибутов и проведения нормализации, создается так называемая физическая модель данных для конкретной СУБД, в которой определяются все таблицы, поля и другие объекты базы данных. После этого можно сгенерировать либо саму базу данных, либо DDL-сценарий для ее создания.

    Список наиболее популярных в настоящее время CASE-средств .

    Таблицы и поля

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

    Индексы

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

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

    Предположим, в какой-то момент времени записи в таблице Customers хранились в таком порядке .

    Допустим, нам нужно получить эти данные упорядоченными по полю CustomerID. Опустив технические детали, мы можем сказать, что индекс по этому полю - это последовательность номеров записей, в соответствии с которой их нужно выводить, то есть:

    1,6,4,2,5,3

    Если же мы хотим упорядочить записи по полю Address, последовательность номеров записей будет другой:

    5,4,1,6,2,3

    Хранение индексов требует существенно меньше места, чем хранение по-разному отсортированных версий самой таблицы.

    Если нам нужно найти данные о клиентах, у которых CustomerID начинается с символов «BO», мы можем найти с помощью индекса местоположение этих записей (в данном случае 2 и 5 (очевидно, что в индексе номера этих записей идут подряд), а затем прочесть именно вторую и пятую записи, вместо того чтобы просматривать всю таблицу. Таким образом, использование индексов снижает время выборки данных.

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

    Ограничения и правила

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

    Помимо ограничений, связанных с установкой диапазона изменения данных, существуют также ссылочные ограничения (referential constraints, например связь master-detail между таблицами Customers и Orders может быть реализована как ограничение, содержащее требование, чтобы значение поля CustomerId (внешний ключ) в таблице Orders было равно одному из уже имеющихся значений поля CustomerId таблицы Customers.

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

    Представления

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

    Нередко такие объекты создаются для хранения в базах данных сложных запросов. Фактически view - это хранимый запрос.

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

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

    Триггеры и хранимые процедуры

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

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

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

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

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

    Объекты для генерации первичных ключей

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

    В разных СУБД для генерации ключей используются разные объекты. Некоторые из таких объектов хранят целое число и правила, по которым генерируется следующее за ним значение, -обычно это выполняется с помощью триггеров. Такие объекты поддерживаются, например, в Oracle (в этом случае они называются последовательностями - sequences) и в IB Database (в этом случае они называются генераторами - generators).

    Некоторые СУБД поддерживают специальные типы полей для первичных ключей. При добавлении записей такие поля заполняются автоматически последовательными значениями (обычно целыми). В случае Microsoft Access и Microsoft SQL Server такие поля называются Identity fields, а в случае Corel Paradox - автоинкрементными полями (Autoincrement fields).

    Пользователи и роли

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

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

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

    Запросы к базам данных

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

    Один из способов манипуляции данными называется «queries by example» (QBE) - запрос по образцу. QBE представляет собой средство для визуального связывания таблиц и выбора полей, которые следует отобразить в результате запроса.

    В большинстве СУБД (за исключением некоторых настольных) визуальное построение запроса с помощью QBE приводит к генерации текста запроса с помощью специального языка запросов SQL (Structured Query Language). Можно также написать запрос непосредственно на языке SQL.

    Курсоры

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

    Большинство современных СУБД поддерживают так называемые двунаправленные курсоры (bi-directional cursors), позволяющие перемещаться по результирующему набору данных как вперед, так и назад. Однако некоторые СУБД поддерживают только однонаправленные курсоры, позволяющие перемещаться по набору данных только вперед.

    Язык SQL

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

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

    • Data Definition Language (DDL) - язык определения данных, позволяющий создавать, удалять и изменять объекты в базах данных
    • Data Manipulation Language (DML) - язык управления данными, позволяющий модифицировать, добавлять и удалять данные в имеющихся объектах базы данных
    • Data Control Languages (DCL) - язык, используемый для управления пользовательскими привилегиями
    • Transaction Control Language (TCL) - язык для управления изменениями, сделанными группами операторов
    • Cursor Control Language (CCL) - операторы для определения курсора, подготовки операторов SQL к выполнению и некоторых других операций.

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

    Функции, определяемые пользователем

    Некоторые СУБД позволяют использовать функции, определяемые пользователем (UDF-User-Defined Functions). Эти функции, как правило, хранятся во внешних библиотеках и должны быть зарегистрированы в базе данных, после чего их можно использовать в запросах, триггерах и хранимых процедурах.

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

    Транзакции

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

    Завершение (Commit) транзакции означает, что все операции, входящие в состав транзакции, успешно завершены, и результат их работы сохранен в базе данных.

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

    Транзакция может состоять из нескольких вложенных транзакций.

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

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

    Заключение

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

    В следующей статье мы познакомим наших читателей с наиболее популярными настольными СУБД: dBase, Paradox, Access, Visual FoxPro, Works и обсудим их основные возможности.

    КомпьютерПресс 3"2000

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

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

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

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

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

    Первые теоретические разработки в области реляционных СУБД были получены еще в 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.

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

    Таким образом, мы предполагаем, что решение о выборе СУБД уже принято руководителем ИТ-проекта, и согласовано с заказчиком базы данных, т.е. СУБД задана. Проектировщик базы данных должен ознакомиться с документацией, в которой описан диалект 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) - объект базы данных, представляющий собой поименованную совокупность привилегий, которые могут назначаться пользователям, категориям пользователей или другим ролям.

    Функции СУБД.

    Функции СУБД бывают высокого и низкого уровня.

    Функции высокого уровня:

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

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

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

    Функции низкого уровня:

    1. Управление данными во внешней памяти;

    2. Управление буферами оперативной памяти;

    3. Управление транзакциями;

    4. Введение журнала изменений в БД;

    5. Обеспечение целостности и безопасности БД.

    Транзакцией называется неделимая последовательность операций, которая отслеживается СУБД от начала и до завершения, и в которой при невыполнении одной операции отменяется вся последовательность.

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

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

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

    Классификация СУБД.

    СУБД можно классифицировать:

    1. По видам программ:

    a. Серверы БД (например, MS SQL Server, InterBase (Borland)) – предназначены для организации центров обработки данных в сетях ЭВМ и реализуют функции управления базами данных, запрашиваемые клиентскими программами с помощью операторов SQL (т.е. программы, которые отвечают на запросы);

    b. Клиенты БД – программы, которые запрашивают данные. В качестве клиентских программ могут использоваться ПФСУБД, электронные таблицы, текстовые процессоры, программы электронной почты;

    c. Полнофункциональные БД (MS Access, MS Fox Pro) – программа, имеющая развитый интерфейс, позволяющий создавать и модифицировать таблицы, вводить данные, создавать и форматировать запросы, разрабатывать отчёты и выводить их на печать.

    2. По модели данных СУБД (как и БД):

    a. Иерархические – основаны на древовидной структуре хранения информации и напоминают файловую систему компьютера; основной недостаток - невозможность реализовать отношение многие - ко – многим;

    b. Сетевые – которые пришли на смену иерархическим и просуществовали недолго т. к. основной недостаток – сложность разработки серьёзных приложений. Основное отличие сетевой от иерархической в том, что в иерархической структура «запись – потомок» имеет только одного предка, а в сетевой потомок может иметь любое количество предков;

    c. Реляционные – данные которых размещены в таблицах, между которыми существуют определённые связи;

    d. Объектно – ориентированные – в них данные хранятся в виде объектов и основное преимущество при работе с ними в том, что к ним можно применить объектно – ориентированный подход;

    e. Гибридные, т. е. объектно – реляционные – совмещают в себе возможности реляционных и объектно – ориентированных баз данных. Примером такой базы данных является Oracle (ранее она была реляционной).

    3. В зависимости от расположения отдельных частей СУБД различают:

    a. локальные – все части которой располагаются на одном компьютере;

    b. сетевые.

    К сетевым относятся:

    - с организацией файл – сервер ;

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

    - с организацией клиент – сервер;

    Сервер БД принимает запрос от клиента, отыскивает в данных нужную запись и передаёт её клиенту. Запрос к серверу формируется на языке структурированных запросов SQL, поэтому серверы БД называют SQL – серверами.

    - распределённые СУБД содержат несколько десятков и сотен серверов, размещённых на значительной территории.

    Основные положения реляционной модели БД.

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

    Особенности реляционных баз данных:

    1. Данные хранятся в таблицах, состоящих из столбцов и строк;

    2. На пересечении каждого столбца и строки находится одно значение;

    3. У каждого столбца - поля есть своё имя, которое служит его названием - атрибут, и все значения в одном столбце, имеют один тип;

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

    Терминология реляционной базы данных:

    Элемент реляционной БД Форма представления
    1. База данных Набор таблиц
    2. Схема базы данных Набор заголовков таблиц
    3. Отношение Таблица
    4. Схема отношения Строка заголовков столбцов таблицы
    5. Сущность Описание свойств объекта
    6. Атрибут Заголовок столбца
    7. Домен Множество допустимых значений атрибута
    8. Первичный ключ Уникальный идентификатор, однозначно определяющий каждую запись в таблице
    9. Тип данных Тип значений элементов в таблице
    10. Кортеж Строка (запись)
    11. Кардинальность Количество строк в таблице
    12. Степень отношения Количество полей
    13. Тело отношения Множество кортежей отношения

    При проектировании реляционной БД данные размещают в нескольких таблицах. Между таблицами устанавливают связи с помощью ключей. При связывании таблиц выделяют основную и дополнительную (подчинённую) таблицу.

    Существуют следующие виды связей между таблицами:

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

    2. Связь вида 1:М (один ко многим) означает, что каждой записи в основной таблице соответствует несколько записей в дополнительной таблице и, наоборот, каждой записи в дополнительной таблице соответствует только одна запись в основной таблице.

    3. Связь вида М:1 (многим к одному) означает, что одной или нескольким записям в основной таблице соответствует только одна запись в дополнительной таблице.

    4. Связь вида М:М (многим ко многим) – это, когда нескольким записям основной таблицы соответствует несколько записей дополнительной и наоборот.

    5. Основные компоненты MS Access.

    Основными компонентами (объектами) MS Access являются:

    1. Таблицы;

    3. Формы;

    4. Отчёты;

    5. Макросы:

    Модули.

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

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

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

    Отчёт – это объект, который позволяет представить определённую пользователем информацию в определённом виде, просматривать и распечатывать её.

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

    Модуль – набор описаний, инструкций и процедур, сохранённых под одним именем. В MS Access имеется три вида модулей:модуль формы, отчёта и общий модуль. Модули формы и отчётов содержат локальную программу для форм и отчётов.

    6. Таблицы в MS Access.

    В MS Access существуют следующие методы создания таблиц:

    1. Режим таблицы;

    2. Конструктор;

    3. Мастер таблиц;

    4. Импорт таблиц;

    5. Связь с таблицами.

    В режиме таблицы данные вводятся в пустую таблицу. Для ввода данных предоставляется таблица с 30 полями. После её сохранения MS Access сам решает, какой тип данных присвоить каждому полю.

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

    Для определения поля в режиме Конструктор задаются:

    1. Имя поля , которое в каждой таблице должно иметь уникальное имя, являющееся комбинацией букв, цифр, пробелов и специальных символов, за исключением «.!” “ ». Максимальная длина имени 64 символа.

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

    Типы данных MS Access

    Тип данных Описание
    Текстовый Текст и числа, например, имена и адреса, номера телефонов, почтовые индексы (до 255 символов).
    Поле Memo Длинный текст и числа, например комментарии и пояснения (до 64000 символов).
    Числовой Общий тип данных для числовых данных, допускающих проведение математических расчётов, за исключением денежных расчётов.
    Дата / время Значения даты и времени. Пользователь может выбирать стандартные формы или создавать специальный формат.
    Денежный Денежные значения. Для денежных расчётов не рекомендуется использовать числовые типы данных, т.к. они могут округляться при расчётах. Значения типа «денежный» всегда выводятся с указанным числом десятичных знаков после запятой.
    Счётчик Автоматически выставляющиеся последовательные номера. Нумерация начинается с 1. Поле счётчика удобно для создания ключа. Это поле является совместимым с полем числового типа, для которого в свойстве Размер указано значение «Длинное целое».
    Логический Значения «Да / Нет», «Истинно / Ложь», «Вкл / Выкл», одно из двух возможных значений.
    Поле объекта OLE Объекты, созданные в других программах, поддерживающие протокол OLE.

    3. Наиболее важные свойства полей:

    - Размер поля задаёт максимальный размер данных, сохраняемых в поле.

    - Формат поля является форматом отображения заданного типа данных и задаёт правила представления данных при выводе их на экран или печать.

    - Подпись поля задаёт текст, который выводится в таблицах, формах, отчётах.

    - Условие на значение позволяет осуществлять контроль ввода, задаёт ограничения на вводимые значения, при нарушении условий запрещает ввод и выводит текст, заданный свойством Сообщение об ошибке;

    - Сообщение об ошибке задаёт текст сообщения, выводимый на экран при нарушении ограничений, заданных Условием на значение.

    Тип элемента управления – свойство, которое задаётся на закладке Подстановка в окне конструктора таблиц. Это свойство определяет, будет ли отображаться поле в таблице и в какой форме – в виде поля или поля со списком.

    Уникальный (первичный) ключ таблицы может быть простым или составным, включающим несколько полей.

    Для определения ключа выделяются поля, составляющие ключ, и на панели инструментов нажимается кнопка ключевое поле или выполняется команда Правка / ключевое поле .


    ©2015-2019 сайт
    Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
    Дата создания страницы: 2016-02-16