- •1. Концепция баз данных
- •1.1. Обоснование концепции баз данных. История вопроса
- •Количество абитуриентов по областям
- •1.2. Архитектура представления информации в концепции бд
- •Внешние представления
- •Файл 1
- •Общие сведения о студенте
- •Сведения об учебе
- •Сведения о неуспевающих студентах (количество)
- •1.3. Понятия схемы и подсхемы и их использование в субд
- •2. Информационная система сферы управления - основная область использования бд
- •3. Модели данных
- •3.1. Понятия модели и структуры данных
- •3.2. Линейная модель данных
- •3.3. Иерархическая структура (модель) данных
- •Студент
- •Семестр
- •3.4. Сетевая структура (модель) данных
- •Итоговая аттестация
- •Семестр
- •Студент
- •Студент1
- •Студент2
- •3.5. Реляционная модель данных
- •3.5.1. История применения реляционной модели данных
- •3.5.2. Основные понятия реляционной модели данных
- •3.5.3. Ключ отношения
- •3.5.4. Нормализация отношений
- •Студент
- •Студент
- •Студент
- •Общежите
- •3.5.5. Операции реляционной алгебры
- •Студент
- •Студенто
- •Нестудент
- •Встречи
- •Делитель
- •Студент
- •Студент
- •Студент
- •Семестр
- •3.5.6. Языки обработки реляционных бд
- •Студент
- •Аудитория
- •Делитель
- •Преподаватель
- •Студент
- •Студент
- •Итоговая аттестация
- •4. Процесс проектирования бд
- •4.1. Построение концептуальной информационной модели ПрО
- •4.1.1. Основные подходы для концептуального моделирования
- •4.1.1.1. Декомпозиционный подход
- •4.1.1.2. Интеграционный подход
- •1.1. Идентификация информационных потребностей пользователей предполагает:
- •1.2. Представление выявленных форм отображения информационных потребностей пользователей в виде исходных отношений предусматривает выполнение следующих действий:
- •1.2.1. Рекомендации по выявлению атрибутов
- •1.2.2. Определение вторичных атрибутов
- •2. Уточнение множества исходных отношений состоит из:
- •3. Связывание отношений и простых структур в кимпо
- •4.1.2. Модели, используемые в концептуальном проектировании
- •4.2. Выбор субд
- •4.3. Проектирование физической структуры бд
- •4.4. Case-средства, используемые при проектировании бд
- •4.5. Пример проектирования бд
Делитель
корпус |
аудитория |
19 |
507 |
КЦ |
313 |
В результате деления получаем необходимое расписание групп по запрашиваемому условию, SQL-запрос содержит вложенные подзапросы и выглядит следующим образом:
SELECT *
FROM расписание р WHERE NOT EXISTS
(SELECT * FROM делитель д WHERE NOT EXISTS
(SELECT * FROM расписание p2 WHERE р2.номер_группы = р.номер_группы
AND p2. тип_недели = р.тип_недели AND р2.день_недели =
р.день_недели
AND р2.номер_занятия = р.номер_занятия
AND р2.корпус = д.корпус AND р2.аудитория = д.аудитория));
Для операций объединение, пересечения и разность в SQL существуют собственные операторы UNION, INTERSECT, MINUS соответственно. Так как эти операции выполняются над 2-мя таблицами, они (последние) должны иметь одинаковый состав атрибутов, определенных на одинаковых доменах. Рассмотрим использование этих операторов SQL на примерах.
Например, для операции объединения имеем следующие таблицы о преподавателях и о сотрудниках вуза (рис. 3.44):
ид
преподавателя
ФИО
дата
рождения
пол
адрес
СОТРУДНИК
ид
сотрудника
ФИО
дата
рождения
пол
адрес
Рис.
3.44. Отношения для объединенияПреподаватель
В результате объединения этих таблиц, получим таблицу, содержащую сведения о преподавателях и сотрудниках:
SELECT *
FROM преподаватель UNION SELECT * FROM сотрудник;
Например, для операции пересечения имеем следующие таблицы о студентах и о жильцах, проживающих в общежитии:
ФИО
студента
Серия
и номер паспорта
Пол
Дата
рождения
ЖИЛЕЦ
ФИО
жильца
Серия
и номер паспорта
Пол
Дата
рождения
Рис.
3.45. Отношения для пересеченияСтудент
В результате пересечения этих таблиц, получим таблицу, содержащую сведения о студентах, проживающих в общежитии:
SELECT * FROM студент INTERSECT SELECT * FROM жилец;
Для операции разность в зависимости от порядка использования таблиц меняется результат выборки. Для примеров используем те же самые таблицы, что и для операции пересечение.
В результате вычитания таблицы студент из таблицы жилец, получаем жильцов, не являющихся студентами:
SELECT * FROM жилец MINUS SELECT * FROM студент;
В результате вычитания таблицы жилец из таблицы студент, получаем студентов, не проживающих в общежитии:
SELECT * FROM студент MINUS SELECT * FROM жилец;
Далее рассмотрим пример создания структуры таблиц с помощью DDL-операции (CREATE) SQL. Например, имеем следующую структуру, представленную на рис. 3.46.
Ограничения в структуре таблицы, которым должна удовлетворять каждая запись таблицы, могут быть представлены как на уровне определенного столбца, так и на уровне всей таблицы: уникальность, ограничения целостности или условия для значений столбцов).
Для представленной выше структуры обозначим некоторые ограничения. В таблице студент ограничения будут следующими: —1 номер зачетки уникален у каждого студента;
—1 рассматриваем студентов, зачислившихся не моложе 14 лет и позднее 1950 г.;
—1 значения для пола студентов и типа финансирования вставляются из соответствующих таблиц-классификаторов;
—1 проживание в общежитии хранится как факт (да или нет), так как булевского типа в СУБД Oracle нет, поэтому этот факт хранится в виде 1 (да) или (нет).
