Слайд 1Московский государственный университет экономики, статистики и информатики (МЭСИ)
Начальник отдела НИЧ,
к.э.н., доцент Д.Г. Корнеев
2009 год
Курс лекций «Базы данных»
Слайд 2Лекции 1, 2. План лекций
1. История возникновения баз
данных (БД);
2. Определения БД;
3. Определение банка данных (БнД);
4. Понятие и
функции Системы управления базами данных (СУБД);
Примеры классификации БнД и СУБД.
Структуры данных (иерархические, сетевые, реляционные);
Основные определения, используемые в реляционной модели;
Свойства отношений;
Определение понятия ключа;
Функциональные зависимости;
Литература:
К. Дейт Введение в системы баз данных. 8-е изд., М.: СПб: Вильямс.- 2005 г.
С.Д. Кузнецов «Базы данных: языки и модели. Учебник – М.: ООО «Бином-Пресс», 2008 г.
3. С.М. Диго Базы данных: проектирование и использование: Учебник. – М.: Финансы и статистика, 2005 г.
Слайд 3История возникновения БД, определения БД, БнД, СУБД
Определения:
База данных
– поименованная совокупность взаимосвязанных данных, находящихся под управлением СУБД.
База данных
— некоторый набор перманентных (постоянно хранимых) данных, используемых прикладными программными системами какого-либо предприятия (К. Дейт);
Банк данных – система БД, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.
Система баз данных — это компьютеризированная система хранения записей, т.е. компьютеризированная система, основное назначение которой — хранить информацию, предоставляя пользователям средства ее извлечения и модификации (К.Дейт).
3. СУБД – совокупность программных и языковых средств, предназначенных для создания БД, поддержания их в актуальном состоянии и организации доступа к ним различных пользователей.
Слайд 4Функции СУБД
Определения:
Целостность БД – непротиворечивость информации, хранящейся в
БД.
Транзакция – законченная совокупность действий над БД, которая переводит БД
из одного целостного состояния в другое целостное состояние.
Привилегия пользователя – права пользователя на выполнение операций с данными (запись, корректировка, чтение, удаление), а также выполнение других действий над БД.
Основные функции СУБД:
Создание БД;
Создание пользователей и указание привилегий;
Обеспечение работы пользователей с БД с учетом привилегий;
Поддержание целостности данных;
Поддержание механизма транзакций;
Журналирование;
Управление оперативной памятью (буферизация).
Слайд 5Пример классификации БнД
По характеру преобладающей обработки информации:
ОLTP (On-Line Transaction
Processing) – системы оперативной обработки информации.
OLAP (On-Line Analytical Processing) –
системы для сложной аналитической обработки информации.
Слайд 6Пример классификации СУБД
По «мощности» СУБД делятся на:
«Настольные» - невысокие
требования к техническим средствам, ориентация на конечного пользователя («дружелюбность» интерфейса,
простота создания БД и обработки информации), низкая стоимость;
Пример: МsAccess
Корпоративные - обеспечивают работу в распределенной среде, высокую производительность, имеют развитые средства администрирования и более широкие возможности поддержания целостности. Системы сложны, дороги, требуют значительных вычислительных мощностей.
Примеры: Oracle, DB2, Sybase, Ms SQL Server, Progress
Слайд 7Иерархичаские структуры данных.
Иерархическую структуру данных можно представить в виде
набора графов «древовидной структуры».
Основное правило: никакой
потомок не может существовать без своего родителя.
Пример:
Слайд 8Иерархические СУБД.
Примерами типичных операций
манипулирования иерархически организованными данными могут
быть следующие:
найти указанный экземпляр типа дерева БД (например, отдел 310);
перейти от одного экземпляра типа дерева к другому;
перейти от экземпляра одного типа записи к экземпляру другого типа
записи внутри дерева (например, перейти от отдела к первому сотруднику);
перейти от одной записи к другой в порядке обхода иерархии;
вставить новую запись в указанную позицию;
удалить текущую запись.
Типичным представителем (наиболее известным и распространенным) является СУБД IMS (Information Management System) компании IBM. Первая версия системы появилась в 1968 г.
Слайд 9Сетевые СУБД
Типичным представителем является Integrated Database
Management System (IDMS) компании Cullinet Software, Inc., предназначенная
для использования на машинах основного класса фирмы IBM под управлением большинства операционных систем. Архитектура системы основана на предложениях Data Base Task Group (DBTG) Комитета по языкам программирования Conference on Data Systems Languages (CODASYL), организации, ответственной за определение языка программирования Кобол. Отчет DBTG был опубликован в 1971 г., а в 70-х годах появилось несколько систем, среди которых IDMS.
Слайд 11Сетевые СУБД
Тип связи определяется для двух типов записи: предка и
потомка. Экземпляр типа связи состоит из
одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и типом записи потомка C должны выполняться следующие два условия:
Каждый экземпляр типа P является предком только в одном экземпляре L;
Каждый экземпляр C является потомком не более, чем в одном экземпляре L.
Слайд 12Сетевые СУБД
Примерный набор операций может быть следующим:
Найти конкретную запись
в наборе однотипных записей (инженера Сидорова);
Перейти от предка к
первому потомку по некоторой связи (к первому сотруднику отдела 310);
Перейти к следующему потомку в некоторой связи (от Сидорова к Иванову);
Перейти от потомка к предку по некоторой связи (найти отдел Сидорова);
Создать новую запись;
Уничтожить запись;
Модифицировать запись;
Включить в связь;
Исключить из связи;
Переставить в другую связь и т.д.
Слайд 13Достоинства и недостатки «ранних» СУБД
Сильные места ранних СУБД:
Развитые средства
управления данными во внешней памяти на низком уровне;
Возможность построения
вручную эффективных прикладных систем;
Недостатки:
Слишком сложно пользоваться;
Фактически необходимы знания о физической организации;
Прикладные системы зависят от этой организации;
Их логика перегружена деталями организации доступа к БД.
Слайд 14Реляционные СУБД
Отношение → двухмерная таблица не содержащая строк
- дубликатов;
Определение:
Реляционная база данных (от англ. Relation –
отношение) – совокупность взаимосвязанных отношений.
Запись – строка (ряд, запись,row, кортеж) таблицы;
Отношение – множество кортежей;
Атрибут (столбец);
Домен – множество значений атрибута;
Слайд 15Свойства отношений
Отсутствие кортежей-дубликатов
То свойство, что отношения не содержат кортежей-дубликатов, следует
из определения отношения как множества кортежей. В классической теории множеств
по определению каждое множество состоит из различных элементов.
Слайд 16Свойства отношений
Отсутствие упорядоченности кортежей
Свойство отсутствия упорядоченности кортежей
отношения также является следствием определения отношения-экземпляра как множества кортежей. Отсутствие
требования к поддержанию порядка на множестве кортежей отношения дает дополнительную гибкость СУБД при хранении баз данных во внешней памяти и при выполнении запросов к базе данных. Это не противоречит тому, что при формулировании запроса к БД, например, на языке SQL можно потребовать сортировки результирующей таблицы в соответствии со значениями некоторых столбцов. Такой результат, вообще говоря, не отношение, а некоторый упорядоченный список кортежей.
Слайд 17Свойства отношений
Атомарность значений атрибутов
Значения всех атрибутов являются атомарными. Это следует
из определения домена как потенциального множества значений простого типа данных,
т.е. среди значений домена не могут содержаться множества значений (отношения). Принято говорить, что в реляционных базах данных допускаются только нормализованные отношения или отношения, представленные в первой нормальной форме. Потенциальным примером ненормализованного отношения является следующее:
Слайд 21Функциональные зависимости
Y функционально зависимо от Х,
что в символическом виде записывается как X
→ Y
(читается либо как "X функционально определяет Y", либо как "X стрелка Y") тогда и только тогда, когда каждое значение множества Х отношения R связано точно с одним значением множества Y отношения R.
Иначе говоря, если два кортежа отношения R совпадают по значению X, они совпадают и по значению Y.
Слайд 22Функциональные зависимости
S#→ CITY; {S#,Р#}→{QTY} ; {S#,P#}→{CITY};
{S#,P#}→{CITY,QTY}; {S#,P#}→{S#}
{S#,P#}→{S#,P#,CITY,QTY}; {S#} →{QTY};
{S#,P#}→{S#}; QTY → S#
Слайд 23Функциональные зависимости
Аксиомамы Армстронга.
Эти правила вывода могут формулироваться
разными способами, из которых самым простым является следующий. Пусть А,
В и С — произвольные подмножества множества атрибутов заданной переменной отношения R. Условимся также, что символическая запись АВ означает объединение множеств А и В. Тогда правила вывода определяются следующим образом.
1. Правило рефлексивности. Если множество В является подмножеством множества А, то А → В.
2. Правило дополнения. Если А → B, то АС → ВС.
3. Правило транзитивности. Если А → B и B→C, то А → С.
Слайд 24Декомпозиция
Декомпозиция без потерь.
Как уже упоминалось, процедура нормализации предусматривает разбиение,
или декомпозицию, отношения на другие переменные отношения, причем декомпозиция должна
быть обратимой, т.е. выполняться без потерь информации.
Слайд 26Понятие ключа
Ключ - атрибут или совокупность атрибутов однозначно идентифицирующих строку
отношения;
Ключ, состоящий из одного атрибута, называется простым.
Ключ, состоящий из
нескольких атрибутов, называется составным.
Свойства ключа:
Уникальность;
Неизбыточность;
Не может содержать пустых значений.