- •Министерство образования и науки рф Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
- •Введение в базы данных
- •Учебное пособие
- •Воронеж 2012
- •Понятие информационной системы
- •Процессы в информационной системе
- •Этапы развития информационных систем
- •Структура информационной системы. Типы обеспечивающих подсистем
- •Математическое и программное обеспечение
- •Правовое обеспечение
- •Классификация информационных систем по признаку структурированности задач
- •Понятие структурированности задач
- •Типы информационных систем, используемые
- •Классификация ис по характеру использования информации
- •Классификация ис по сфере применения
- •Классификация ис по степени автоматизации
- •Контрольные вопросы
- •2. Введение в субд
- •2.1. Понятие базы и банка данных
- •2.2. Средства реализации баз данных
- •2.2.1. Программные средства банка данных
- •2.2.2. Языковые средства
- •2.2.3. Технические и организационно-методические средства
- •2.2.4. Требования к банкам данных
- •2.3. Функции субд
- •2.4. Классификация банков данных
- •2.4.1. Классификация баз данных
- •2.4.2. Классификация субд
- •2.4.3. Классификация БнД по экономико-организационным признакам
- •2.5. Концепция централизованного управления
- •Преимущества централизованного управления данными
- •2.6. Трехуровневая архитектура системы баз данных
- •2.7. Пользователи банков данных
- •2.8. Архитектура клиент/сервер
- •Контрольные вопросы
- •3. Модели и типы данных
- •3.1. Иерархическая модель
- •3.2. Сетевая модель
- •3.3. Реляционная модель
- •3.4. Постреляционная модель
- •3.5. Многомерная модель
- •3.6. Типы данных
- •Контрольные вопросы
- •4. Применение Баз данных в корпоративных информационных системах
- •4.1. Корпоративная информационная система
- •Контуром оперативного управления
- •4.2. Контур административного управления
- •4.2.1. Наполнение баз данных на примере модуля «Управление персоналом»
- •4.3. Контур оперативного управления
- •4.3.1. Пример организации модуля «Управление продажами (сбыт)»
- •Базы данных модуля «Автотранспорт»
- •4.4. Контур бухгалтерского учета
- •Контрольные вопросы
- •5. Справочно-правовые базы данных
- •5.1. Общая характеристика справочно-правовых баз
- •5.2. Наиболее популярные юридические базы данных
- •5.2.1. База юсис
- •5.2.2. Информационно-поисковая система "Кодекс"
- •5.2.3. Справочно-правовая система "Гарант"
- •5.2.4. Справочно-правовая система «Консультант Плюс»
- •5.2.5. Программный комплекс "Эталон"
- •Контрольные вопросы
- •6. Проектирование баз данных
- •6.1. Этапы проектирования
- •6.2. Инфологическое моделирование
- •6.2.1. Компоненты инфологической модели Модель «сущность — связь»
- •6.2.2. Классификация бинарных связей
- •6.2.3. Моделирование локальных представлений
- •6.2.4. Объединение моделей локальных представлений
- •6.3. Даталогическое проектирование
- •6.4. Проектирование реляционных баз данных
- •6.5. Нормализация отношений
- •Контрольные вопросы
- •7. Реляционная модель данных
- •Общие понятия
- •7.2. Реляционные объекты данных
- •7.2.1. Основные понятия
- •7.2.2. Фундаментальные свойства отношений
- •7.2.3. Виды отношений
- •Целостность реляционных данных
- •Реляционные операторы
- •7.4.1. Реляционная алгебра
- •Примеры использования реляционной алгебры для выражения словесных запросов в виде формулы
- •Назначение реляционной алгебры
- •Операции расширения и подведения итогов
- •Операторы обновления
- •7.4.2. Реляционное исчисление
- •Контрольные вопросы
- •8. Язык реляционных баз данных sql
- •8.1. Функции и основные возможности
- •8.2. Средства определения схемы
- •8.2.1. Определение таблицы
- •8.2.2. Определение ограничений целостности таблицы
- •8.2.3. Определение представлений
- •8.3. Структура запросов
- •8.3.1. Спецификация курсора
- •8.3.2. Оператор выборки
- •8.3.3. Подзапрос
- •8.3.4 Табличное выражение
- •Раздел where
- •Предикат сравнения
- •Предикат between
- •Предикат in
- •Предикат null
- •Предикат с квантором
- •Предикат exists
- •Раздел group by
- •Раздел having
- •8.4. Агрегатные функции и результаты запросов
- •8.5. Операторы обновления
- •Оператор изменения записей
- •Контрольные вопросы
- •9. Внутренняя организация реляционных субд
- •9.1. Хранение отношений
- •9.2. Индексы
- •9.3. Журнальная информация
- •9.4. Служебная информация
- •Контрольные вопросы
- •10. Настольные субд
- •10.1. Общие сведения о настольных субд
- •10.2. Наиболее популярные настольные субд
- •Контрольные вопросы
- •11. Серверные субд
- •11.1. Характерные черты современных серверных субд
- •Наиболее популярные серверные субд
- •Контрольные вопросы
- •Заключение
- •Корелина Татьяна Валерьевна введение в базы данных
- •394006 Воронеж, ул. 20-летия Октября, 84
Примеры использования реляционной алгебры для выражения словесных запросов в виде формулы
1. Получить имена поставщиков, которые поставляют деталь P2:
((SP JOIN S) WHERE P# = ’P2’) [SNAME].
2. Получить имена поставщиков, которые поставляют по крайней мере одну красную деталь:
(((P WHERE COLOR = ‘Red’) JOIN SP) [S#] JOIN S) [SNAME]
или
(((P WHERE COLOR = ‘Red’) [P#] JOIN SP) JOIN S) [SNAME].
3. Получить имена поставщиков, которые поставляют все детали:
((SP [S#, P#] DIVIDEBY P [P#] JOIN S) [SNAME].
4. Получить номера поставщиков, поставляющих по крайней мере все те детали, которые поставляет поставщик S2:
SP [S#, P#] DIVIDEBY (SP WHERE S# = ‘S2’) [P#].
5. Получить имена поставщиков, которые не поставляют деталь P2:
((S [S#] MINUS (SP WHERE P# = ‘P2’) [S#]) JOIN S) [SNAME].
Назначение реляционной алгебры
Основная цель реляционной алгебры – обеспечить запись выражений. Возможно следующее применение таких выражений:
определение области выборки, т.е. определение данных для их выбора;
определение области обновления, т.е. определение данных для их вставки, изменения или удаления как результата операции обновления;
определение (именованных) виртуальных отношений, т.е. определение данных для их визуализации через представления;
определение снимка, т.е. определение данных для сохранения в виде «мгновенного» снимка отношения;
определение правил безопасности, т.е. определение данных, для которых осуществляется контроль доступа;
определение требований устойчивости, т.е. определение данных, которые входят в область для некоторой операции управления одновременным доступом;
определение правил целостности, т.е. некоторых особых правил, которым должна удовлетворять база данных, наряду с общими правилами, представляющими часть реляционной модели и применяемыми к каждой базе данных.
В общем, выражения служат для символического высокоуровневого представления намерений пользователя и ими можно манипулировать в соответствии с многочисленными правилами преобразования. Таким образом, реляционная алгебра служит хорошим базисом для оптимизации.
Операции расширения и подведения итогов
Многие авторы предлагали дополнительные операторы помимо восьми основных. Наиболее часто встречаются операторы расширения и подведения итогов.
Операция расширения (EXTEND) позволяет из определенного отношения создать новое отношение, содержащее дополнительный атрибут, значения которого получены посредством некоторых скалярных вычислений.
Синтаксис:
EXTEND A ADD exp AS Z.
Результатом этого выражения будет отношение с заголовком, эквивалентным заголовку отношения А, расширенному новым атрибутом Z, который подсчитывается вычислением скалярного выражения exp для кортежа отношения А. При этом отношение А не должно иметь атрибута Z и выражение exp не должно ссылаться на атрибут Z.
Пример:
EXTEND P ADD (WEIGHT*454) AS GMWT;
EXTEND (P JOIN SP) ADD (WEIGHT*QTY) AS SHIPWT;
EXTEND S ADD COUNT ((SP RENAME S# AS X) WHERE X=S#) AS NP.
Атрибут NP в результирующем отношении представляет количество деталей, поставляемых поставщиком, который идентифицируется соответствующим значением S#.
Функция COUNT – пример итоговой функции, т.е. функции, берущей в качестве аргумента множество значений и возвращающей одно значение. Также используются следующие итоговые функции: SUM (сумма), AVG (среднее значение), MAX (максимальное значение), MIN (минимальное значение).
Таким образом, операция расширения обеспечивает возможность «горизонтального» или «построчного» вычисления в алгебре. Операция подведения итогов (SUMMARIZE) выполняет аналогичную функцию для «вертикальных» вычислений.
Синтаксис:
SUMMARIZE A BY (A1, A2, …, An) ADD exp AS Z,
где A1, A2, …, An – отдельные атрибуты отношения А.
Результатом этого выражения будет отношение с заголовком {A1, A2, …, An, Z} и с телом, содержащим все такие кортежи t, которые являются кортежами проекции отношения А по атрибутам A1, A2, …, An, расширенного значением для нового атрибута Z; такое новое значение Z подсчитывается вычислением итогового выражения exp по всем кортежам отношения А, которое имеет те же самые значения для атрибутов A1, A2, …, An, что и кортеж t.
Пример:
SUMMARIZE SP BY (P#) ADD SUM (QTW) AS TOTQTY – вычисляется отношение с заголовком {P#, TOTQTY}, в котором существует один кортеж для каждого значения P# в отношении SP; в этом кортеже содержится значение P# и соответствующее общее количество деталей.
SUMMARIZE (P JOIN SP) BY (CITY) ADD COUNT AS NSP – результат будет следующим:
CITY |
NSP |
London Paris Rome |
5 6 1 |