- •1 Основные понятия и определения
- •1.1Информационные системы и банки данных
- •1.2Назначение и основные компоненты банка данных
- •1.3Трех уровневая архитектура абстракций базы данных.
- •1.4Физическая и логическая независимость данных
- •1.5Администратор базы данных
- •1.6Системы управления базами данных
- •1.7Схема обмена данными при работе с базой данных
- •1.8Локальные информационные системы
- •1.9Информационные системы в сетях
- •2Модели данных концептуального уровня
- •2.1Иерархическая модель данных
- •2.2Сетевая модель
- •2.3Реляционная модель
- •2.4Постреляционная модель
- •2.5Многомерная модель
- •2.6Объектно-ориентированная модель
- •3Физические модели баз данных
- •3.1Файловые структуры, используемые в базах данных
- •3.2 Хешированные файлы
- •3.2.1Стратегия разрешения коллизий с областью переполнения
- •3.2.2Организация стратегии свободного замещения
- •3.3Индексные файлы
- •3.3.1Файлы с плотным индексом, или индексно-прямые файлы
- •3.3.2Файлы с неплотным индексом, или индексно-последовательные файлы
- •3.3.3Организация индексов в виде b-tree (в-деревьев)
- •3.4Моделирование отношений «один-ко-многим» на файловых структурах
- •3.5Инвертированные списки
- •3.6Модели бесфайловой организации данных
- •4Реляционная модель данных
- •4.1Основные определения
- •4.2Соглашения об отношениях в реляционных системах
- •4.3Классы отношений
- •4.3.1Классы отношений с точки зрения способов создания и хранения
- •4.3.2Классификация отношений с точки зрения их содержания
- •4.4Операции реляционной алгебры
- •4.4.1Основные понятия
- •4.4.2Базовые теоретико-множественные операции
- •4.4.3Специальные операции реляционной алгебры
- •4.4.4Связи между отношениями (таблицами)
- •4.5Реляционное исчисление
- •4.6Язык запросов по образцу qbe
- •4.7Структурированный язык запросов sql
- •4.7.1История развития sql
- •4.7.2Общая характеристика языка
- •4.7.3Структура sql
- •4.7.4Оператор выбора select
- •4.7.5Применение агрегатных функций и группировки
- •4.7.6Раздел order by и ключевое слово top
- •4.7.7Вложенные запросы
- •4.7.8Внутренние и внешние объединения
- •4.7.9Перекрестные запросы
- •4.7.10Операторы манипулирования данными
- •4.7.11Запросы на создание таблиц
- •4.7.12Использование языка определения данных
- •4.8Правила Кодда (требования к реляционным бд)
- •5Проектирование баз данных
- •5.1Этапы проектирования бд
- •5.2Проблемы проектирования реляционных баз данных
- •5.3Нормализация отношений
- •5.4Метод сущность-связь
- •5.5Средства автоматизации проектирования
- •5.5.1Основные определения
- •5.5.2Модели жизненного цикла
- •5.5.3Модели структурного проектирования
- •5.5.4Объектно-ориентированные модели
- •5.5.5 Классификация case-средств
- •6Защита информации в базах данных
- •6.1Общие подходы к обеспечению безопасности данных
- •6.2Назначение и проверка полномочий, проверка подлинности
- •6.3Средства защиты базы данных
- •7Базы данных в сетях
- •7.1Организация базы данных в локальной сети
- •7.2Модели архитектуры клиент-сервер
- •7.3Управление распределенными данными
- •8История развития баз данных
1.2Назначение и основные компоненты банка данных
Банк данных (БнД) в общем случае состоит из следующих компонент:
данных;
программного обеспечения;
аппаратного обеспечения;
пользователей.
Рассмотрим вкратце названные компоненты и некоторые связанные с ними понятия.
Данные в БнД организованы в виде баз данных. База данных (БД) представляет собой совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы. Данные, хранимые в БД, имеют определенную логическую структуру, которую называют моделью представления данных. К основным моделям представления данных (моделям данных) относятся следующие:
иерархическая;
сетевая;
реляционная;
постреляционная;
многомерная;
объектно-ориентированная.
В теории баз данных первые три модели являются основными.
В БнД можно выделить системные и пользовательские данные. Пользовательские данные отображают состояние объектов и их взаимосвязи в рассматриваемой предметной области. Системные данные предназначены для описания структуры пользовательских данных и для организации нормального функционирования банка и баз данных.
Обычно данные, хранящиеся в БД, называются постоянными (хотя они не долго могут оставаться такими). «Постоянными» они называются по отношению к другим данным: промежуточным, входным, выходным.
Входные данные – это информация, передаваемая системе (обычно с терминала или рабочей станции). Такая информация может стать причиной изменения постоянных данных.
Выходные данные – это сообщения и результаты, выдаваемые системой Ясно, что различие между видами данных нельзя назвать четкими, они определяются на интуитивном уровне.
Из программного обеспечения следует выделить, прежде всего:
системы управления базами данных;
приложения:
утилиты:
средства разработки приложений:
средства разработки баз данных.
Система управления базами данных (СУБД) – это комплекс языковых, математических и программных средств, предназначенных для централизованного создания, ведения и совместного использования БД многими пользователями. Обычно СУБД различают по используемой модели данных. Так СУБД, основанные на использовании реляционной модели данных, называют реляционными СУБД. Количество современных систем управления базами данных исчисляется тысячами.
Приложение – программа или комплекс программ, обеспечивающих автоматизацию обработки информации для прикладной задачи с использованием базы данных. Приложения для работы с базами данных могут создаваться в среде и вне среды СУБД. Приложения, созданные в среде СУБД, как правило, могут работать только под управлением этой СУБД (например, приложения Access). Вне среды СУБД приложения создаются с помощью системы программирования, имеющей средства доступа к базе данных. Примерами таких систем являются: Delpfi или C++ Builder. Приложения, разработанные в среде СУБД, часто называют приложениями СУБД, а приложения, разработанные вне СУБД,- внешними приложениями. Общим у всех приложений является то, что они используют предоставляемый СУБД интерфейс доступа к информации в БД.
Утилиты - это программные средства работы с БД специального назначения. В некоторых случаях утилиты используют прямой доступ к информации в БД, в обход предоставляемого СУБД интерфейса.
Средства разработки приложений и баз данных представляют собой программные обеспечения, позволяющие автоматизировать процессы разработки.
Аппаратное обеспечение (вычислительная система) представляет собой совокупность взаимосвязанных и согласованно действующих ЭВМ или процессоров и других устройств, обеспечивающих автоматизацию процессов приема, обработки и выдачи информации пользователям. Поскольку основными функциями банка данных являются хранение и обработка данных, то используемая вычислительная система, наряду с приемлемой мощностью центральных процессоров (ЦП), должна иметь достаточный объем оперативной и внешней памяти прямого доступа.
Под пользователями мы будем понимать сотрудников разрабатывающих, использующих и поддерживающих в работоспособном состоянии БнД. В этом случае из пользователей могут быть выделены:
конечные пользователи;
прикладные программисты;
администраторы банка (баз) данных;
технический персонал.
Конечные пользователи это основная категория пользователей, в интересах которых и создается банк данных. Главный принцип проектирования банка состоит в том, что от конечных пользователей не должно требоваться каких-либо специальных знаний в области вычислительной техники и языковых средств. Конечный пользователь чаще всего получает доступ к БД через приложения, при этом используется интерфейс, основанный на меню и различных формах.
Прикладные программисты – пользователи, которые отвечают за написания приложений (прикладных программ), использующих БД.
Из прикладных программистов могут быть выделены разработчики и администраторы приложений. Эта группа пользователей функционирует во время проектирования, создания и реорганизации банка данных. Администраторы приложений координируют работу разработчиков при создании конкретного приложения или группы приложений, объединенных в функциональную подсистему.
Администратор банка (базы) данных (АБД) – это лицо или группа лиц, отвечающих за выработку требований к банку (базе) данных, их проектирование, создание, эффективное использование и сопровождение. Полный набор обязанностей, возложенных на администраторов, будет рассмотрен ниже.
Не в каждом банке данных могут быть выделены все типы пользователей. При разработке информационных систем с использованием простых «настольных» СУБД администратор банка данных, администратор приложений и разработчик часто существуют в одном лице. Однако при построении современных сложных корпоративных баз данных, которые используются для автоматизации всех или большей части бизнес-процессов в крупной фирме или корпорации, могут существовать и группы администраторов приложений, и отделы разработчиков. Наиболее сложные обязанности возложены на группу администратора БД.
