
- •1. История развития баз данных
- •3. Модели данных [1]
- •1. История развития баз данных
- •1.1. Файлы и файловые системы
- •1.2. Базы данных на больших эвм
- •1.3. Эпоха персональных компьютеров
- •1.4. Распределенные базы данных
- •1.5. Особенности настоящего периода:
- •2. Проблемы обработки информации
- •Основные функции субд
- •Типовая организация современной субд
- •3. Модели данных [1]
- •3.1. Системы управления файлами
- •3.2. Иерархические базы данных
- •3.3. Сетевые базы данных
- •3.4. Реляционные базы данных
- •Недостатки реляционных систем
- •3.5. Объектно-ориентированные базы данных
- •Преимущества и недостатки оосубд [8, с.817]
- •3.6. Объектно-реляционные базы данных
- •4. Реляционная модель данных [2]
- •5. Операции над отношениями
- •5.1. Теоретико-множественные операции реляционной алгебры
- •5.1.1 Объединение отношений
- •5.1.2. Пересечение отношений
- •5.1.3. Разность отношений
- •5.1.4. Расширенное декартово произведение
- •5.2. Специальные операции реляционной алгебры
- •5.2.1. Операция фильтрации
- •5.2.2. Операция проектирования
- •5.2.3. Операция условного соединения
- •5.2.4. Операция деления
- •5.2.5.Примеры использования операций реляционной алгебры
- •Целостность [8]
- •6. Проектирование бд Жизненный цикл бд
- •Проектирование бд
- •Проектирование бд с учетом конкретной архитектуры Архитектура клиент-сервер
- •Структура сервера базы данных
- •Проектирование распределенных бд
- •11.1. Концепции распределенных баз данных
- •Этапы проектирования реляционной базы данных
- •6.1. Разработка технического задания
- •6.2. Разработка структуры бд
- •6.3. Нормализация
- •6.3.1. Первая нормальная форма
- •6.3.2. Вторая нормальная форма
- •6.3.3. Третья нормальная форма
- •6.3.4. Нормальная форма Бойса-Кодда
- •6.3.5. Четвертая и пятая нормальные формы
- •6.3.6. Денормализация
- •Проектирование реляционной базы данных на основе декомпозиции универсального отношения (плоской таблицы)
- •7.Язык запросов sql (Structured Query Language)
- •7.1. История развития
- •7.2. Как работает sql?
- •7.3. Интерактивный и встроенный sql
- •7.4. Типы данных
- •7.6. Оператор выбора select (MySql)
- •7.6.1. Предикаты предложения where
- •7.6.2. Примеры использования оператора select
- •7.6.3. Применение агрегатных функций и вложенных запросов в операторе выбора
- •8. Система управления базами данных (субд) MySql
- •8.1. Преимущества MySql перед другими субд. Недостатки
- •8.2. Инструментарий, поставляемый с MySql
- •8.3. Установка и завершение связи с сервером
- •8.4. Команды sql для MySql. Правила оформления листингов
- •8.5. Основы использования MySql
- •8.5.1. Замечания по организации работ с MySql
- •8.5.2. Программы MySql
- •8.5.2.1. Стандартные опции программ MySql
- •8.5.2.2. Конфигурационные файлы
- •8.5.2.3. Переменные среды
- •8.5.2.4. Клиенты mysql и mysqlc
- •Программирование приложений
- •Использование специализированных библиотек и встраиваемого sql
- •Odbc - открытый интерфейс к базам данных на платформе ms Windows
- •Jdbc - мобильный интерфейс к базам данных на платформе Java
- •9. Администрирование бд
- •9.1. Управление данными на предприятии
- •9.2. Основные функции dba
- •9.3. Администрирование в MySql [1])
- •9.3.1. Обеспечение доступности данных
- •9.3.2. Поддержание целостности данных
- •9.3.3. Подготовка к катастрофе
- •9.3.4. Поддержка пользователей
- •9.3.5. Разработка и внедрение стандартов
- •9.3.6. О хранении данных
- •9.3.6.1. Журнал транзакций
- •9.3.6.2. Журнальные файлы
- •9.3.7. Безопасность
- •9.3.7.1. Схемы привилегий
- •9.3.7.2. Задание привилегий
- •9.3.8. Оптимизация
- •9.3.8.1. Оптимизация запросов
- •9.3.8.2. Оптимизатор запросов
- •9.3.8.3. Выбор типа столбцов и эффективность запросов
- •9.3.8.4. Эффективная загрузка данных
- •9.3.8.5. Оптимизация для администратора
- •10. Транзакции и параллельные вычисления
- •10.1. Параллельные запросы
- •10.2. Транзакции
- •10.3. Уровни изоляции
- •10.4. Выполнение транзакций
- •10.5. Блокировки
- •10.6. Программные блокировки
- •Мониторы транзакций
- •12. Направления и тенденции развития баз данных
- •12.1. Ограничения реляционных систем
- •12.2. Особенности построения информационных хранилищ
- •Что достигается через использование технологии хранилищ данных?
- •Проблемы хранилищ данных
- •12.3. Olap-технология
- •Правила для olap-систем
- •12.3.1. Реляционные olap-системы
- •12.3.2. Многомерные olap-системы
- •12.3.3. Принципы построения многомерной базы данных
- •12.4. Oltp-технологии
- •13. Интеграция субд в среду Web
- •13.1. Публикация бд в Интернете
- •13.1.1. Общие концепции публикации бд в Интернете
- •13.1.2. Технологии публикации бд в Internet.
- •13.2. Сценарии JavaScript, jScript и vbScript
- •13.3. Элементы управления ActiveX
- •13.4. Апплеты и сервлеты Java
- •13.5. Интерфейсы
- •13.5.1. Интерфейсы cgi и WinCgi
- •13.5.2. Интерфейс isapi/nsapi
- •13.5.3. Asp, php, idc/htx-страницы
- •13.5.4. Формирование Web-страниц
- •13.5.5. Интерфейсы ole db, ado, odbc
- •13.6. Статическая публикация бд
- •13.7. Динамическая публикация бд
- •13.9. Протоколы передачи гипертекста
- •13.10. Универсальный указатель ресурсов
- •13.11. Состав и теги html-документа
- •13.15. Двухуровневые Web-приложения
- •13.16. Трехуровневые Web-приложения
- •13.17. Многоуровневые Web-приложения
- •13.18. Характеристики интерфейсов ole db, ado и odbc
- •Список использованной литературы
- •Приложения 1. Типы таблиц, поддерживаемых MySql
- •Приложение 2. Встроенные функции
- •Управляющие функции sql для MySql
- •Статистические функции
- •Математические функции
- •Строковые функции
- •Функции работы с датой и временем
- •Приложение 3. Инструкции языка sql для MySql
- •Приложение 4. Маленькая база для маленькой компании (OpenOffice_MySql) Приложение 5. MySql – начинающим администраторам Приложение 6. О метаданных
5.1.4. Расширенное декартово произведение
Кроме трех перечисленных теоретико-множественных операций в рамках реляционной алгебры определена еще одна теоретико-множественная операция — операция расширенного декартова произведения. Эта операция не накладывает никаких дополнительных условий на схемы исходных отношений, поэтому операция расширенного декартова произведения, обозначаемая
R1R2,
допустима для любых двух отношений. Но прежде, чем определить саму операцию, введем дополнительно понятие конкатенации, или сцепления, кортежей.
Сцеплением, или конкатенацией, кортежей с = <С1, ..., Сn> и q = <q1, ..., qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей с и q обозначается как (с, q).
(с, q) = <С1, С2, ... ,Сn, q1, q2, ..., qm>
Здесь n — число элементов в первом кортеже (кортеже с), m — число элементов во втором кортеже (кортеже q).
Если первый кортеж с=Иванов, Петр, Сидорович, а второй q=УЗТМ, токарь, то их сцепление будет содержать следующие данные
(с, q)= Иванов, Петр, Сидорович, УЗТМ, токарь.
Все предыдущие операции не меняли степени или арности отношений — это следует из определения эквивалентности схем отношений. Операция декартова произведения изменяет степень результирующего отношения.
Расширенным декартовым произведением отношения R1 степени n со схемой
SR1 = (А1, А2, ... , Аn)
и отношения R2 степени m со схемой
SR2 = (B1, B2, ..., Вm)
называется отношение Rз степени n+m со схемой
SR3 = (A1, А2, ... , Аn, В1, В2, ..., Вm),
содержащее кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2.
То есть, если
R1 = { r }, R2 = { q }, то
R3=R1 R2 = {(r, q) | г R1 q R2}
Еще одно определение операции848 с. -->.
Расширенным декартовым произведением двух отношений A и B называется отношение, у которого:
исходные отношения A и B не имеют общих имен атрибутов;
заголовок представляет собой сцепление двух заголовков исходных отношений A и B;
тело состоит из множества кортежей, каждый из которых представляет собой сцепление кортежа, принадлежащего отношению A, и кортежа, принадлежащего отношению B.
Обратите внимание, что кардинальное число (мощность или количество кортежей) результата равняется произведению кардинальных чисел исходных отношений A и B, а степень равняется сумме степеней.
Операцию декартова произведения с учетом возможности перестановки атрибутов в отношении можно считать симметричной. Очень часто операция расширенного декартова произведения используется для получения некоторого универсума — т. е. отношения, которое характеризует все возможные комбинации между элементами отдельных множеств. Однако самостоятельного значения результат выполнения операции обычно не имеет, он участвует в дальнейшей обработке. Например, на производстве в отношении R7 задана обязательная номенклатура деталей для всех цехов, а в отношении R8 дан перечень всех цехов.
-
R7
Шифр детали
Название детали
00011073
Гайка М1
00011075
Гайка М2
00011076
Гайка МЗ
00011003
Болт М1
00011006
Болт МЗ
00013063
Шайба М1
00013066
Шайба МЗ
00011077
Гайка М4
00011004
Болт М2
00011005
Болт М5
00011006
Болт Мб
00013062
Шайба М2
-
R8
Цех
Цех 1
Цех 2
Цех 3
Тогда отношение R9, которое соответствует ситуации, когда каждый цех изготавливает все требуемые детали, будет выглядеть следующим образом:
R9 |
||
Шифр детали |
Название детали |
Цех |
00011073 |
Гайка М1 |
Цех 1 |
00011075 |
Гайка М2 |
Цех 1 |
00011076 |
Гайка МЗ |
Цех 1 |
00011003 |
Болт М1 |
Цех 1 |
00011006 |
Болт МЗ |
Цех 1 |
00013063 |
Шайба М1 |
Цех 1 |
00013066 |
Шайба МЗ |
Цех 1 |
00011077 |
Гайка М4 |
Цех 1 |
00011004 |
Болт М2 |
Цех 1 |
00011005 |
Болт М5 |
Цех 1 |
00011006 |
Болт Мб |
Цех 1 |
00013062 |
Шайба М2 |
Цех 1 |
00011073 |
Гайка М1 |
Цех 2 |
00011075 |
Гайка М2 |
Цех 2 |
00011076 |
Гайка МЗ |
Цех 2 |
00011003 |
Болт М1 |
Цех 2 |
00011006 |
-Болт МЗ |
Цех 2 |
00013063 |
Шайба М1 |
Цех 2 |
00013066 |
Шайба МЗ |
Цех 2 |
00011077 |
Гайка М4 |
Цех 2 |
00011004 |
Болт М2 |
Цех 2 |
00011005 |
Болт М5 |
Цех-2 |
00011006 |
Болт Мб |
Цех 2 |
00013062 |
Шайба М2 |
Цех 2 |
00011073 |
Гайка М1 |
Цех З |
00011075 |
Гайка М2 |
Цех З |
00011076 |
Гайка МЗ |
Цех З |
00011003 |
Болт М1 |
Цех З |
00011006 |
Болт МЗ |
Цех З |
00013063 |
Шайба М1 |
Цех З |
00013066 |
Шайба МЗ |
Цех З |
00011077 |
Гайка М4 |
Цех З |
00011004 |
Болт М2 |
Цех З |
00011005 |
Болт М5 |
Цех З |
00011006 |
Болт Мб |
Цех З |
00013062 |
Шайба М2 |
Цех З |
Пусть реальный выпуск деталей в каждом цехе характеризуется отношением R10.
R10 |
||
Шифр детали |
Название детали |
Цех |
00011073 |
Гайка М1 |
Цех 1 |
00011075 |
Гайка М2 |
Цех 1 |
00011076 |
Гайка МЗ |
Цех 1 |
00011003 |
Болт М1 |
Цех 1 |
00011006 |
Болт МЗ |
Цех 1 |
00013063 |
Шайба М1 |
Цех 1 |
00013066 |
Шайба МЗ |
Цех 1 |
00011077 |
Гайка М4 |
Цех 1 |
00011004 |
Болт М2 |
Цех 1 |
00011006 |
Болт МЗ |
Цех 2 |
00013063 |
Шайба М1 |
Цех 2 |
00013066 |
Шайба МЗ |
Цех 2 |
00011077 |
Гайка М4 |
Цех 2 |
00011004 |
Болт М2 |
Цех 2 |
00011006 |
Болт Мб |
Цех 2 |
00013062 |
Шайба М2 |
Цех 2 |
00011073 |
Гайка М1 |
Цех 3 |
00011075 |
Гайка М2 |
Цех 3 |
00011076 |
Гайка МЗ |
Цех 3 |
00011003 |
Болт М1 |
Цех 3 |
00011006 |
Болт МЗ |
Цех 3 |
00013063 |
Шайба М1 |
Цех 3 |
00013066 |
Шайба МЗ |
Цех З |
00011077 |
Гайка М4 |
Цех З |
00011005 |
Болт М5 |
Цех 3 |
00011006 |
Болт Мб |
Цех З |
00011005 |
Болт М5 |
Цех 1 |
00011006 |
Болт Мб |
Цех 1 |
00013062 |
Шайба М2 |
Цех 1 |
Тогда, если нам надо узнать, какие детали, в каких цехах из общей обязательной номенклатуры не выпускаются (отношение R11), то мы можем вычесть из полученного отношения R9 отношение R10, характеризующее реальный выпуск деталей в каждом цехе.
Отношение R11, которое является результатом выполнения этой операции, имеет вид:
R11= R9\ R10
R11 |
||
Шифр детали |
Название детали |
Цех |
00011073 |
Гайка М1 |
Цех 2 |
00011075 |
Гайка М2 |
Цех 2 |
00011076 |
Гайка МЗ |
Цех 2 |
00011004 |
Болт М2 |
Цех З |
00013062 |
Шайба М2 |
Цех З |
00011003 |
Болт М1 |
Цех 2 |
00011005 |
Болт М5 |
Цех З |
В каких запросах есть смысл использовать расширенное декартово произведение? Эта операция обычно моделирует некоторую ситуацию, которая характеризуется словом «все».
Группа теоретико-множественных операций избыточна, так, например, операцию пересечения можно заменить сочетанием операций объединения и разности.
R1 R2=(R1 U R2)\(R1\R2)\( R2\R1)
Однако это достаточно сложная формула, и именно поэтому все три теоретико-множественные операции вошли в базовый набор операций реляционной алгебры.
Далее мы переходим к группе операций, названных специальными операциями реляционной алгебры.