Главная Программы Учебное пособие Презентации Дополнительно
    Глава 1
  Глава 2
  Глава 3
  Глава 4
  Глава 5
  Глава 6
  Глава 7
  Глава 8
  Глава 9
  Глава 10
  Глава 11
  Глава 12
  Глава 13
  Глава 14
  Глава 15
  Глава 16
  Глава 17
  Глава 18
  Глава 19
  Глава 20
  Лабораторная 1
  Лабораторная 2
  Лабораторная 3
  Лабораторная 4
  Лабораторная 5
  Лабораторная 6
  Литература

Учебное пособие -> Глава 18

 

          Глава 18. Базы данных 

 

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

Любая информационная система должна выполнять три основные функции:

-   ввод данных,

-   запросы по данным,

-   составление отчетов.

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

Предположим мы хотим собрать информацию про альбомы музыкальных групп. Пусть имеется информация о некоторых альбомах: 1965, Led Zeppelin 4, Lp, Help!, Atlantic, 1971. Lp(England), EMI. 1970, Flash Gordon, Parlophone, 1980, Led Zeppelin 3, Soundtrack, Lp, Atlantic.

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

 

Название

альбома

Год выпуска

Тип

Фирма

 альбома

Help!

1965

Lp (England)

Parlophone

Led Zeppelin 4 1971 Lp Atlantic
Led Zeppelin 3

1970

Lp

Atlantic

Flash Gordon

1980

Soundtrack

EMI

 

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

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

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

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

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

Для иерархических структур характерна подчиненность объектов нижнего уровня объектам верхнего уровня. Важно отметить, что в дереве, между верхними и нижними объектами, задано отношение «один ко многим».

 

Рисунок 152 – Пример иерархической структуры

 

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

-   в каком альбоме больше песен;

-   число альбомов выпущенных группой;

-   есть ли в альбомах одинаковые песни и т.д.

Сетевую структуру данных можно представить в виде схемы. В этом случае есть два уровня взаимосвязанных объектов, но отношение между ними «многие ко многим»

 

Рисунок 153 – Пример сетевой структуры

 

Пусть в этой сетевой структуре данные о музыкантах и «инструментах» состоят из следующих атрибутов: музыкант - ФИО, рост, цвет волос, время рождения; инструмент- название инструмента, какой фирмой изготовлен инструмент.

Тогда схема позволяет ответить на следующие вопросы:

-   гитары какой фирмы предпочитает большинство музыкантов;

-   какой музыкант владеет наибольшим количеством инструментов и др.

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

-   определяются объекты описания;

-   определяются структуры этих объектов;

-   выбирается тип структуры, отображающий отношения между объектами (табличная, иерархическая, сети);

-   строится конкретная информационная структура.

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

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

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

Характеристики баз данных:

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

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

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

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

  

Реляционные БД

Доктор Е.Ф. Кодд предложил реляционную модель баз данных в 1979 г.

Название «реляционная» (в переводе с английского relation - отношение) связано с тем, что каждая запись в таблице содержит информацию, относящуюся только к одному конкретному объекту.

Всякое отношение должно иметь свое имя.

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

 

Музыкальные альбомы групп

Код альбома

Код группы

Название

альбома

Год выпуска

Тип альбома

Фирма

25

1

Help!

1965

Lp (English)

Pariophone

36

2

Led Zeppelin 4

l97l

Lp

Atlantic

35

2

Led Zeppelin 4 -

1970

Lp

Atlantic

34

3

Flash Gordon

1980

Soundtrack

EMI

 

Рок группы

Код группы

Название группы

Страна

Дата создания

Дата распада

1

The Bealles

Англия

1963

I970

2

Led Zeppelin 4

Англия

1989

-

3

Flash Gordon

Англия

199I

-

 

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

 

Объединение таблиц

Название группы

Страна

Дата

создания

Дата

распада

Название

альбома

Год

выпуска

Тип

альбома

Фирма

The Beatles

Англия

1963

I970

With the Beatles

1963

Lp

Pariophone

The Beatles

Англия

1963

I970

Please, please me

1963

Lp

Pariophone

The Beatles

Англия

1963

I970

Rubber soul

1963

Lp

Pariophone

 

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

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

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

 

Рисунок 154 – Основные понятия

 

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

 

Рисунок 155 – Отношения сущностей

 

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

-   Сущности – ни одна часть первичного ключа не может иметь неопределенного значения (NULL). Значение должно быть определенным и уникальным.

-   Ссылки – значение внешнего ключа должно совпадать со значением первичного ключа или быть неопределенным (NULL).

-   Столбцы – значения столбца должны соответствовать заданному типу данных.

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

  

СУБД

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

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

Основные функции СУБД:

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

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

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

Входящие в состав современных СУБД средства совместно выполняют следующие функции:

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

2.     первичный ввод, пополнение информации в базе данных;

3.     удаление устаревшей информации из базы данных;

4.     корректировку данных для поддержания их актуальности;

5.     упорядочение (сортировку) данных по некоторым признакам;

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

7.     подготовку и генерацию отчетов;

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

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

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

-   наличие развитой системы помощи (подсказки), к которой в любой момент может обратиться пользователь, не прерывая сеанса работы с компьютером и базой данных;

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

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

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

Архитектурно СУБД состоит из двух основных компонентов:

-   языка описания данных (ЯОД), позволяющего создать схему описания данных в базе;

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

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

Язык описания данных (ЯОД) - это язык высокого уровня декларативного (непроцедурного) типа, предназначенный для формализованного описания типов данных, их структур и взаимосвязей.

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

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

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

Язык манипулирования данными (или язык запросов) представляет собой систему команд, например, следующего типа:

-   произвести выборку данного, значение которого удовлетворяет заданным условиям;

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

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

Широкое распространение имеют СУБД для персональных компьютеров типа DBASE (DBASE III, IV, FoxPro, Paradox), Clipper, Clarion. Эти СУБД ориентированы на однопользовательский режим работы с базой данных и имеют очень ограниченные возможности. Языки подобных СУБД представляют собой сочетание команд выборки, организации диалога, генерации отчетов.

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

В последнее время стали среди СУБД популярными ACCESS (входит в состав MS Office), Lotus, Oracle.

 

SQL

Язык манипулирования данными SQL (от английских слов Structured Query Language) стал классическим языком реляционных баз данных.

Простейшая операция выборки представляется командой SELECTFROMWHERE (выбратьиз – где):

                     select <список атрибутов>

                     from <отношение>

                     where <условие>.

Например:

Успеваемость (ФПО_студента, Дисциплина, Оценка, Дата, Преподаватель)

           select                    Дисциплина, Оценка

           from                    Успеваемость

           where                  ФИО_студента = “Иванов И. И.”.

Часть команды «where» не является обязательной, например:

           select                    ФИО_студента

           from                    Успеваемость.

Выборка всех данных:

           select                    *

           from                    Успеваемость.

Выбрать из таблицы «Успеваемость» фамилии студентов, сдавших на "5" экзамен по информатике:

           select                    ФИО_студента

           from                      Успеваемость

    where                  Дисциплина = “Информатика” AND Оценка=5.

Выборка может быть и вложенной:

           select                    ФИО_студента

           from                       Успеваемость

           where                  ФИО_студента in

           (select                   Фамилия

          from                         Студент

           where                  Ф_т = “физмат”).

Помимо select, from, where в команде выборки можно использовать и другие служебные слова, например:

order by <атрибут> asc - определяет сортировку результата выборки в порядке возрастания (asc) или убывания (desc) значения атрибута;

group by <атрибут1> - группирует данные по значениям атрибута;

SQL имеет также команды, позволяющие обновлять данные (update), вставлять (insert) и удалять (delete). 

Например:

           update                 Студент

           set                        Kypc=3

           where                  Kypc=2

Добавление строки

  insert inio Успеваемость:

  <“Семенов С.С.”, “Информатика”, 5,15/01/96, Петров П.П.>.

Удаление

  delete Успеваемость

  where Оценка=2

Существенно расширяют возможности языка библиотечные функции, такие как count (подсчет), sum (суммирование), avg (среднее), max и min.

 

Иерархические БД

-   Типичным представителем (наиболее известным и распространенным) является Information Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г.

-   Time-Shared Date Management System (TDMS) компании Development Corporation;

-   Mark IV Multi - Access Retrieval System компании Control Data Corporation;

-   System - 2000 разработки SAS-Institute;

-   Серверы каталогов, такие, как LDAP и Active Directory.

-   По принципу иерархической БД построены иерархические файловые системы, состоящая из корневой директории, в которой имеется иерархия поддиректорий и файлов, и Реестр Windows.

 

Сетевые БД

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

-   СУБД ЛИНТЕР - система управления базами данных, которая полностью разработана в России.

 

Реляционные БД

Примеры:

-   MySQL

-   MS SQL Server

-   DB2

-   Firebird

-   InterBase

-   SQLite

-   MS Access

-   Paradox

-   OpenOffice.org Base

dBase – семейство широко распространённых СУБД, а также язык программирования, используемый в них.

Самая первая СУБД этого семейства называлась dBase II и была выпущена в 1980 году, пришедшие ей на смену dBase III и dBase IV были несколько лет одной из самых распродаваемых программ.

Долгое время dBase не портировали под Microsoft Windows, в результате чего в этой нише у программы оказались сильные конкуренты — Paradox, Clipper, FoxPro и Microsoft Access.

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

СУБД типа DBASE позволяют работать с реляционными базами данных (БД), структура которых состоит из трех элементов:

-   число полей БД;

-   характеристика каждого поля;

-   число записей в БД.

-   Каждое поле имеет следующие характеристики:

-   Field name (имя поля)

-   Type (тип)

-   Width (ширина)               

-   Dec (дес.знаки)

Запуск СУБД осуществляется из операционной системы ехе-файлом (db.exe, foxdb и т.п.)

DBASE создает следующие типы файлов:

-   .dbf - файлы с записями БД;

-   .prg - файлы с текстами программ;

-   .frm - файлы структуры форматных отчетов;

-   .ndx - индексные файлы, сортирующие записи по определенному ключу;

-   .mem - файлы данных переменной Mem.

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

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

Некоторые команды:

-   Вставить данные (Insert).

-   Перемещение по таблице и просмотр записей БД (Go top, Go bottom, Display и др.).

-   Редактирование записей позволяют проводить следующие команды (Edit N, Delete, Copy и др. ).

-   Изменить структуру БД (Modify).

-   Обработка данных (Sort, Index, Find ).

 

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

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

 

СУБД Oracle

Рисунок 156 – Структура СУБД Oracle

 

-   SQL: Язык команд для взаимодействия с сервером Oracle.

-   SQL*Plus: Инструмент Oracle, предназначенный для распознавания и выполнения команд SQL и PL/SQL.

-   PL/SQL: Процедурный язык Oracle, дополняющий  SQL  логикой прикладной программы.

Команды SQL:

-   Выборка данных:  SELECT

-   Манипулирование данными (DML): INSERT, UPDATE, DELETE

-   Определение данных (DDL): CREATE, ALTER, DROP, RENAME, TRUNCATE

-   Управление транзакциями: COMMIT, ROLLBACK, SAVEPOINT

-   Безопасность (DCL): GRANT, REVOKE

SELECT     [DISTINCT]       {*,column [alias],....}

FROM         table;

-   SELECT задает столбцы, подлежащие выборке.

-   FROM указывает, из какой таблицы

Пример:

 

 

 

Два типа функций в SQL:

-   Однострочные

o   Символьные

o   Числовые

o   Функции даты

o   Функции преобразования

o   Многострочные

-   Групповые

 

Рисунок 157 – Функции SQL

 

Однострочные функуции:

-   LOWER – преобразование в нижний регистр.

-   UPPER – преобразование в верхний регистр.

-   INITCAP – преобразование начальных букв в верхний регистр.

-   CONCAT – конкатенация значений.

-   SUBSTR – возврат подстроки.

-   LENGTH – возврат количества символов.

-   NVL – преобразование неопределенного значения.

Групповые функции:

-   SUM – возвращает суммарное значение.

-   AVG – возвращает среднее значение.

-   MAX – возвращает максимальное значение.

-   MIN – возвращает минимальное значение.

-   COUNT(*) – возвращает количество строк в таблице.

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

 

Рисунок 158 – Отношения между таблицами

 

Создание таблицы – пример

 

Вставка строкпример

 

Обновление строк – пример

 

Удаление строк из таблицы – пример

  

Объектно-ориентированная СУБД

Объектно-ориентированная СУБД – реализующая объектно-ориентированный подход.

Объектно-ориентированная база данных – БД, в которой данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями.

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

Примеры объектно-ориентированных СУБД:

-   IBM Lotus Notes/Domino

-   Jasmine

-   ObjectStore

-   Caché

-   db4objects

 

Объектно-реляционные БД

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

Разница между объектно-реляционными и объектными СУБД: первые являют собой надстройку над реляционной схемой, вторые же изначально объектно-ориентированы. Главная особенность и отличие объектно-реляционных, как и объектных, СУБД от реляционных заключается в том, что они интегрированы с Объектно-Ориентированным (OO) языком программирования, внутренним или внешним как C++, Java.

Примеры:

-   Oracle

-   PostgreSQL

 

Многомерные СУБД

Основаны на OLAP технологиях. OLAP (англ. online analytical processing, аналитическая обработка в реальном времени) — технология обработки информации, включающая составление и динамическую публикацию отчётов и документов. Используется аналитиками для быстрой обработки сложных запросов к базе данных.

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

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

-   сложные вычисления над данными;

-   вычисления, связанные с изменением данных во времени.

 

Рисунок 159 – Пример многомерной БД

 

Первым продуктом, выполняющим OLAP-запросы, был Express (компания IRI). Другие хорошо известные OLAP-продукты:

-   Microsoft Analysis Services (ранее называвшиеся OLAP Services, часть SQL Server),

-   Oracle OLAP Option,

-   DB2 OLAP Server от IBM,

-   SAP BW.

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