Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lection_BD1.doc
Скачиваний:
1
Добавлен:
28.08.2019
Размер:
1.08 Mб
Скачать

Основная литература

  1. Гарсиа-Молина Г., Ульман Д., Уидом Д. Системы баз данных. - М.:Вильямс,2003. - 1088 с.

  2. Дейт К.. Введение в системы баз данных. - М.: Вильямс, 2001. - 1072 с.

  3. Грабер М. М. SQL. Справочное руководство. - М.: Лори, 1998. - 292 с.; 2001. - 354 с.

  4. Ульман Д.Д. Введение в системы баз данных. - М.: «Лори», 2000. - 374 с.

  5. Гpей П. Логика, алгебpа и базы данных. - М.: Машиностpоение, 1989. - 368 с.

  6. Цикpитзис Д. и дp. Модели данных. - М.: Финансы и статистика, 1985. - 344 с.

  7. Дейт К. Руководство по pеляционной СУБД DB2. - М.:Финансы и статистика,1988. - 320с.

  8. Маpка Д. и дp. Методология стpуктуpного анализа и пpоектиpования. -М.: МетаТехнология, 1993. - 240 с.

  9. Калянов Г.H. CASE: стpуктуpный системный анализ. - М.: ЛОРИ, 1996. - 242 с.

  10. Цаленко М.Ш. Моделиpование семантики в базах данных. - М.: Hаука. Гл. pед. физ.-мат. лит., 1989. - 288 с.

  11. Мейер Д. Теория реляционных баз данных. - М.:Мир, 1987. - 608 с.

  12. Ребекка Райордан Основы реляционных баз данных MicroSoft Press, Москва, 2001. - 390с.

Дополнительная литература

  1. Ульман Дж. Основы систем баз данных. - М.: Финансы и статистика, 1983. – 334 с.

  2. Горев А. и др. Эффективная работа с СУБД. - СПб.:Питеp,1997. -704 с.

  3. Буч Г. Объектно-ориентированное проектирование с примерами применения. - М.: БИНОМ, СПб: Невский диалект, 1998. - 560 с.

  4. Вендеров А.М. CASE-технология. - М.: Финансы и статистика, 1998. - 176 с.

  5. Конноли Т., Берг К., Страчан А.. Базы данных. - М.: Вильямс, 2000. - 1120 с.

  6. Саймон А.Р.. Стратегические технологии баз данных. - М.: ФиС, 1999. - 479 с.

  7. Боуман Дж.С., Эмерсон С.Л., Дановски М.. Практическое руководство по SQL. - М.: Вильямс, 2001. - 336 с.

  8. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1989. – 351 с.

  9. Кириллов В.В. Структуризованный язык запросов (SQL). – СПб.: ИТМО, 1994. – 80 с.

  10. Хаббард Дж. Автоматизированное проектирование баз данных. – М.: Мир, 1984. – 294 с.

ВВЕДЕНИЕ.

Для чего нужны базы данных.

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

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

  • Второе направление - это использование средств вычислительной техники в автоматизированных информационных системах.

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

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

Информационные системы имеют следующие особенности:

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

  • данные, которые они используют, имеют сложную структуру

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

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

Режим многопользовательского доступа

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

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

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

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

СОТР_ИМЯ - полное имя сотрудника,

СОТР_НОМЕР - номер его удостоверения,

СОТР_СТАТ - информация о его соответствии занимаемой должности (для простоты, "да" или "нет") ,

СОТР_ЗАРП - размер зарплаты,

СОТР_ОТД_НОМЕР - номер отдела,

СОТР_ОТД_РУК - имя руководителя отдела.

Другой способ представления информации - поддерживать два многоключевых файла: СОТРУДНИКИ и ОТДЕЛЫ.

Первый файл СОТРУДНИКИ должен содержать поля

СОТР_ИМЯ,

СОТР_НОМЕР,

СОТР_СТАТ,

СОТР_ЗАРП,

СОТР_ОТД_НОМЕР,

а второй – ОТДЕЛЫ:

ОТД_НОМЕР,

ОТД_РУК,

ОТД_СОТР_ЗАРП (общий размер зарплаты)

ОТД_РАЗМЕР (общее число сотрудников в отделе).

Запросы на языке высокого уровня (SQL):

SELECT ОТД_РАЗМЕР

FROM СОТРУДНИКИ, ОТДЕЛЫ

WHERE СОТР_ИМЯ = "ПЕТР ИВАНОВИЧ СИДОРОВ"

AND СОТР_ОТД_НОМЕР = ОТД_НОМЕР

SELECT СОТР_ИМЯ, СОТР_НОМЕР

FROM СОТРУДНИКИ

WHERE СОТР_СТАТ = "НЕТ",

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

Информационная система (ИС):

  • предназначена для сбора, хранения и обработки информации;

  • ориентирована на конечного пользователя - непрограммиста.

Конкретная ИС всегда связана с конкретной областью применения - предметной областью:

  • данные - информация этой области применения;

  • процессы (действия над данными) - задачи этой предметной области;

  • конечные пользователи - специалисты этой области (бухгалтера, библиотечные работники...).

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

База данных (БД): набор взаимосвязанных файлов данных, предназначенных для решения набора взаимосвязанных задач предметной области.

В процессе развития средств обработки данных были выявлены следующие характерные черты «идеальных» информационных систем обработки информации.

  • Обработка постоянных (перманентных) данных

  • Централизованная обработка данных на основе стандартов

  • Интеграция данных

  • Независимость

  • Целостность хранимых данных

  • Эффективность обработки данных

  • Язык управления данными

  • Секретность

  • Синхронизация

  • Защита от отказов и восстановление

Информационные системы подразделяются на персональные (однопользовательские), групповые и корпоративные.

  • Персональные ИС ориентированы на раздельное использование индивидуальными конечными пользователями.

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

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

Для работы с данными используются языки описания баз данных (DDL – DATABASE DEFINE LANGVIGE) и манипулирования данными (DML - DATABASE MANIPULATION LANGVIGE).

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

Функции администратора:

  1. Создание подсхем для представлений;

  2. Представление полномочий на использование базы данных или ее определенных частей;

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

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

  5. Изготовления копий базы данных и ее восстановление при повреждениях.

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

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

  2. Команды языка манипулирования данными являются операторами в некотором языке, представляющим расширение языка, используемого прикладными системами.

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

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

  • управление данными во внешней памяти (на дисках);

  • управление данными в оперативной памяти (защита целостности данных, синхронизация);

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

  • обеспечение защиты данных от несанкционированного доступа;

  • поддержание языков БД (язык определения данных, язык манипулирования данными).

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

  • ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию,

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

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

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

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

Возможность обеспечить независимость по данным открывается благодаря тому, что:

  • СУБД хранит информацию о структуре данных (из описания на DDL);

  • операторы DML - языка, на котором пишутся прикладные программы, выполняет СУБД.

Существует множество уровней абстракции между ЭВМ, понимающей язык двоичных цифр и конечным пользователем, мыслящим на уровне абстракций, привязанных к конкретно решаемым задачам. Технология обеспечения независимости по данным основана на концепции 3-х уровневого представления базы данных (ANSI/SPARC-1975):

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

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

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

Внешнее представление

Внешнее представление

Концептуальное представление

Внутреннее представление

Хранимая база данных

Конечные пользователи

Хранимая база данных

Уровни абстракции в базе данных

В рамках этой концепции различаются:

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

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

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

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

  • прикладные программисты и аналитики - проводят настройку режимов работы ИС и прав доступа пользователей, определяют внешние представления БД и разрабатывают прикладные программы, расширяющие функциональное наполнение ИС;

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

Архитектура программных систем обработки баз данных (DataBase Applications).

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]