- •Рецензенты:
- •Введение 12 Глава 1. Проектирование баз данных 14
- •Глава 2. Субд Visual FoxPro 213
- •Глава 3. Субд Access 308
- •Глава 4. Субд Microsoft sql Server 431
- •Глава 5. Субд Oracle 478
- •Глава 6. Обзор субд 506
- •Глава 1. Проектирование баз данных
- •1.1. История развития баз данных и субд
- •1.2. Введение в субд
- •1.2.1. Основные термины, понятия и определения
- •1.2.2. Классификация субд
- •1) Сетевые, корпоративные, распределенные, клиент-серверные, полнофункциональные, масштабируемые, “большие” субд.
- •2) Локальные, персональные, настольные, файл-серверные, “малые” субд.
- •1.3. Модели данных
- •1.3.1. Типы связей между объектами
- •1.3.2. Формы записи инфологической (концептуальной) модели
- •1.3.3. Уровни представления и независимости данных
- •1.3.4. Порядок взаимодействия пользователя, субд и ос
- •1.3.5. Поддержка целостности базы данных
- •1.3.6. Иерархическая модель
- •1.3.7. Сетевая модель
- •1.3.8. Реляционная модель
- •1.3.8.1. Отношения
- •1.3.8.2. Теоретико-множественные операции с отношениями
- •1.3.8.3. Правила Кодда
- •1.3.8.4. Индексирование таблиц
- •1.3.8.5. Связывание таблиц
- •1.3.9. Постреляционная модель
- •1.3.10. Многомерная модель
- •1.3.11. Объектно‑ориентированная модель
- •1.4. Модели использования баз данных в сети
- •1.4.1. Сеть
- •1.4.2. Модели использования баз данных
- •1.4.2.1. Локальная однопользовательская модель
- •1.4.2.2. Файл-серверная модель
- •1.4.2.3. Клиент-серверная модель
- •В моделях «клиент–сервер»
- •1.4.2.4. Модель удаленного доступа (rda)
- •1.4.2.5. Модель сервера данных
- •1.4.2.6. Трехзвенная распределенная модель
- •1.4.2.7. Модели серверов баз данных
- •1.4.2.8. Клиент-Интернет
- •1.4.2.9. Интерфейс odbc
- •1.4.3. Мониторы обработки транзакций (tpm)
- •1.4.4. Децентрализованное управление базами данных
- •1.4.5. Таблицы в локальных сетях
- •1.5. Проектирование баз данных
- •1.5.1. Принципы и этапы проектирования и создания баз данных
- •2.6. Создание er‑диаграмм для отдельных пользователей.
- •3.4. Создание er‑диаграммы глобальной логической модели.
- •4. Создание глобальной логической модели в среде целевой субд.
- •1.5.2. Методы нормализации и денормализации отношений
- •1.5.3. Правила формирования взаимосвязанных таблиц
- •1.5.4. Модели жизненного цикла и проектирование баз данных
- •1.5.4.1. Модели жизненного цикла
- •1.5.4.2. Обследование, системный анализ и постановка задачи
- •1.5.4.3. Инфологическое проектирование
- •1.5.4.4. Датологическое проектирование
- •1.5.4.5. Проектирование физической модели
- •1.5.4.6. Реализация, интеграция и внедрение
- •1.5.5. Выбор субд
- •1.5.5.1. Сравнение Visual FoxPro, Access, sql Server, Oracle и Excel
- •1.5.5.2. Методика балловой оценки программных средств
- •1.5.6. Case‑средства автоматизации проектирования
- •1. Ориентация на этапы жизненного цикла
- •2. Функциональная полнота
- •3. Степень зависимости от субд
- •4. Тип используемой модели
- •1.6. Использование баз данных
- •1.6.1. Защита информации
- •Пользователя в ms sql Server 7.0
- •1.6.2. Резервирование информации
- •1.6.3. Варианты разработки приложений
- •1.7. Стандартизация баз данных
- •1.8. Язык sql
- •1.8.1. Введение в sql
- •1.8.2. Типы данных sql
- •1.8.3. Оператор выбора данных select
- •1.8.3.1. Назначение и синтаксис оператора
- •1.8.3.2. Объединение таблиц
- •1.8.3.3. Вложенные и коррелированные запросы
- •1.8.3.4. Запросы, использующие exist, any, all
- •1.8.3.5. Стандартные функции
- •1.8.3.6. Запрос с группировкой
- •1.8.4. Операторы обновления базы
- •1.8.4.1. Оператор корректировки данных update
- •1.8.4.2. Оператор удаления записей delete
- •1.8.4.3. Оператор включения записей insert
- •1.8.5. Представления
- •1.9. Транзакции
- •1.9.1. Определение транзакций
- •1.9.2. Организация транзакций
- •1.9.3. Журнал транзакций
- •1.9.4. Журнализация и буферизация
- •1.9.5. Индивидуальный откат транзакций
- •1.9.6. Восстановление после мягкого сбоя
- •1.9.7. Физическая согласованность базы данных
- •1.9.8. Восстановление после жесткого сбоя
- •1.9.9. Параллельное выполнение транзакций
- •1.9.10. Уровни изолированности пользователей
- •1.9.11. Гранулированные синхронизационные захваты
- •1.9.12. Предикатные синхронизационные захваты
- •1.9.13. Метод временных меток
- •1.10. Встроенный sql
- •1.10.1. Особенности встроенного sql
- •1.10.2. Определение курсора
- •1.10.3. Открытие курсора
- •1.10.4. Чтение очередной строки курсора
- •1.10.5. Закрытие курсора
- •1.10.6. Удаление и обновление данных
- •1.10.7. Хранимые процедуры
- •Хранимой процедуры на сервере
- •1.10.8. Триггеры
- •1.10.9. Динамический sql
- •1.11. Архитектура субд и оптимизация запросов
- •1.12. Перспективы развития субд
- •В опросы для самопроверки и контроля
- •Глава 2. Субд Visual FoxPro
- •2.1. Общепринятые обозначения
- •2.2. Основные ограничения
- •2.3. Компоненты Visual FoxPro
- •2.4. Язык программирования FoxPro
- •2.4.1. Создание, компиляция и выполнение программ, процедур и функций
- •2.4.2. Константы
- •2.4.3. Переменные
- •2.4.4. Массивы
- •2.4.5. Операции
- •2.4.6. Команды управления
- •2.4.6.1. Команда проверки условия (If)
- •2.4.6.2. Команда выбора (Do Case)
- •2.4.7. Организация циклов
- •2.4.7.1. Цикл (Do While)
- •2.4.7.2. Счетный цикл (For)
- •2.4.7.3. Цикл сканирования таблицы (Scan)
- •2.4.8. Создание свободных таблиц
- •2.4.8.1. Создание и изменение структуры таблиц
- •2.4.8.2. Заполнение таблиц
- •2.4.9. Редактирование таблиц в диалоговом режиме (Browse, Edit)
- •2.4.10. Перемещение по таблице (Go, Skip)
- •2.4.11. Просмотр таблиц (Display, List)
- •2.4.12. Удаление записей (Delete, Zap, Pack)
- •2.4.13. Редактирование полей в программном режиме (Replace)
- •2.4.14. Локализация и поиск записей в таблице
- •2.4.14.1. Фильтрация данных (Set Filter)
- •2.4.14.2. Последовательный поиск (Locate)
- •2.4.15. Индексирование и открытие таблиц
- •2.4.16. Прямой поиск
- •2.4.17. Одновременная работа с несколькими таблицами
- •2.4.17.1. Рабочие области
- •2.4.17.2. Команда установки связей между таблицами
- •2.4.18. Обмен данными между массивами и таблицами
- •2.4.19. Ввод‑вывод данных сообщений
- •2.4.19.1. Вывод данных на экран (?, ??, ???)
- •2.4.19.2. Вывод сообщения (Wait)
- •2.4.19.3. Вывод сообщения и кнопок (MessageBox)
- •2.4.20. Организация меню
- •2.4.20.1. Общий порядок создания и использования меню
- •2.4.20.2. Вертикальное Popup-меню
- •2.4.20.3. Горизонтальное Bar-меню
- •2.4.20.4. Двухуровневое Pulldown-меню
- •2.4.20.5. Управление доступом к меню
- •2.4.21. Манипулирование файлам и таблицами
- •2.4.22. Математическая обработка таблиц
- •2.4.23. Язык запросов sql
- •2.5. Настройка среды Visual FoxPro
- •2.6. Объекты и классы
- •2.7. События и методы
- •2.8. Общий порядок работы с Visual FoxPro
- •2.9. Создание проекта
- •2.10. Создание базы данных
- •Р ис. 2.10.2. Окно установки контроля целостности связей
- •2.11. Представления (View)
- •2.11.1. Мастер представлений
- •2.11.2. Конструктор представлений
- •2.11.3. Удаленные представления (Remote Views)
- •2.12. Запросы
- •2.12.1. Мастера запросов
- •2.12.2. Конструктор запросов
- •2.12.3. Функции сквозных запросов
- •2.13. Формы
- •2.13.1. Мастера форм
- •2.13.2. Конструктор форм
- •Р ис. 2.13.2.3. Вид отображаемых таблиц
- •2.14. Отчеты
- •2.14.1. Мастера отчетов
- •2.14.2. Конструктор отчетов
- •2.14.3. Команда вывода отчета
- •2.15. Меню
- •2.16. Управление проектом и создание приложения
- •2.16.1. Свойства проекта
- •2.16.2. Параметры проекта
- •2.16.3. Создание приложения
- •2.16.4. Галерея компонентов
- •2.17. Отладка программ
- •2.18. Хранимые процедуры
- •2.19. Классы
- •2.20. Создание класса панели инструментов
- •Р ис. 2.20.1. Вид формы, построенной на основе класса clFormNavigator
- •2.21. Включение в базу ole‑объектов
- •2.22. Обзор дополнительных возможностей
- •2.23. Среда быстрой разработки приложений ‑ пакет MacroFox
- •2.23.1. Назначение
- •2.23.2. Структура
- •2.23.3. Основные макрооператоры
- •2.23.3.1. Описание входного документа (Forma)
- •2.23.3.2. Описание формы отчета (Ofort)
- •2.23.3.3. Описание меню (Menu)
- •2.23.4. Словари баз, функций, форм, таблиц и условий
- •2.23.5. Управление сценариями
- •2.23.6. Ведение таблиц базы данных
- •2.23.7. Формирование отчетов и запросов‑отчетов
- •2.23.8. Сводная обработка данных
- •2.23.9. Супероболочка
- •2.23.10. Порядок работы
- •В опросы для самопроверки и контроля
- •Глава 3. Субд Access
- •3.1. Последовательность работ при создании новой базы данных
- •3.2. Создание базы данных
- •3.2.1. Запуск Access и открытие базы данных
- •3.2.2. Создание пустой базы данных
- •3.2.3. Рабочая среда Access
- •3.2.4. Работа с таблицами
- •3.2.4.1. Создание таблиц
- •3.2.4.2. Связывание таблиц
- •3.2.4.3. Сортировка, поиск и фильтрация записей
- •3.3. Формирование и использование внешних данных
- •3.4. Запросы
- •3.4.1. Запросы на выборку данных
- •3.4.1.1. Простой запрос
- •Р ис. 3.4.1.1.2. Окно конструктора запросов
- •3.4.1.2. Итоговый запрос
- •Р ис. 3.4.1.2.2. Окно конструктора запросов
- •3.4.1.3. Перекрестный запрос
- •3.4.1.4. Динамический запрос
- •3.4.2. Запросы на обновление данных
- •3.4.3. Параметрические запросы
- •3.4.4. Выражения
- •3.5. Формы
- •3.5.1. Автоформы
- •3.5.2. Мастер форм
- •3.5.3. Конструктор форм
- •3.5.3.1. Основные операции над объектами
- •3.5.3.2. Основные элементы управления
- •3.5.3.3. Создание формы
- •3.5.4. Редактирование данных в режиме формы
- •3.6. Отчеты
- •3.6.1. Автоотчеты
- •3.6.2. Мастер отчетов
- •3.6.3. Конструктор отчетов
- •3.6.3.1. Окно предварительного просмотра отчета
- •Р ис. 3.6.3.2. Окно конструктора отчетов
- •3.6.4. Диаграммы
- •3.6.5. Составные отчеты
- •3.6.6. Дополнительные возможности
- •3.7. Пользовательский интерфейс
- •3.7.1. Панель инструментов
- •3.7.2. Меню и ленты пользователей
- •3.7.3. Контекстные меню
- •3.7.4. Связывание меню и панелей с формами и отчетами
- •3.7.5. Кнопочная форма
- •3.7.6. Настройка параметров среды и запуска приложения
- •3.7.7. Изменение меню и панелей инструментов средствами Visual Basic
- •3.8. Макросы
- •3.9. Web‑страницы
- •3.9.1. Экспорт объектов в формат html
- •3.9.2. Страницы доступа
- •3.10. Интеграция Access с другими компонентами Office
- •3.10.1. Использование Microsoft Excel при работе Access
- •3.10.2. Использование Microsoft Word при работе с Access
- •3.10.3. Добавление ActiveX‑элементов
- •3.10.4. Использование Access в качестве сервера
- •3.11. Совместное использование баз данных в сети
- •3.12. Разработка клиент‑серверных приложений
- •3.12.1. Доступ к базам данных через odbc
- •3.12.2. Доступ к базам данных через ole db, ado
- •3.12.3. Способы работы с внешними данными
- •3.12.3.1. Присоединение таблиц
- •3.12.3.2. Сквозные запросы
- •3.12.3.3. Хранимые процедуры
- •3.12.3.4. Объектная модель dao
- •3.12.4. Проекты Access
- •3.12.4.1. Создание проектов
- •3.12.4.2. Изменение свойств таблиц
- •3.12.4.3. Схемы базы данных
- •3.12.4.4. Конструктор представлений
- •3.12.4.5. Хранимые процедуры
- •3.12.4.6. Сортировка и отбор записей в формах и отчетах
- •3.13. Репликация баз данных
- •3.13.1. Репликация баз данных Access
- •3.13.2. Репликация проектов Access
- •3.14. Администрирование баз данных и проектов
- •3.14.1. Архивирование, сжатие и восстановление
- •3.14.2. Стандартные средства субд защиты базы данных
- •3.14.3. Примеры оригинальных программные средств защиты базы данных
- •3.14.3.1. Защита параметров запуска приложений от изменений
- •3.14.3.2. Регистрация пользователей и установка их полномочий
- •3.14.3.3. Формирование журнала аудита (изменений) базы данных
- •3.15. Перенос базы данных Access на платформу sql Server
- •3.16. Обзор инструментальных средств Office Developer Edition
- •3.17.1. Быстрое отслеживание данных
- •3.17.2. Создание отчетов
- •3.17.3 Обмен с другими пользователями
- •3.17.4. Быстрые способы начала работы
- •3.17.5 Интерфейс пользователя
- •3.17.6 Средства создания объектов
- •3.17.7. Режимы отчета и макета
- •3.17.8 Разделенные формы
- •3.17.9 Внедренные макросы в формах и отчетах
- •3.17.10. Новые типы данных и элементы управления
- •3.17.11. Средства конструирования и анализа
- •3.17.12. Безопасность
- •3.17.13. Интеграция с Службы Windows SharePoint Services
- •3.17.14. Сбор данных с помощь форм InfoPath и Outlook
- •3.17.15. Экспорт в форматы pdf и xps
- •3.17.16. Работа с внешними данными
- •3.17.17. Способы устранения неполадок
- •3.17.18. Средства проверки орфографии
- •3.17.19. Создание ленты пользователя
- •3.18.1. Создание Web-базы данных для публикации в Интернете
- •Подготовка
- •Начало работы с пустой веб-базой данных
- •Создание веб-таблицы.
- •Добавление поля щелчком таблицы.
- •Изменение свойств поля.
- •Добавление вычисляемого поля.
- •Настройка правил проверки данных.
- •Создание правила проверки поля и соответствующего сообщения.
- •Создание правила проверки записи и соответствующего сообщения.
- •Создание веб-формы.
- •Создание веб-отчета
- •Сделайте форму навигации веб-формой, отображаемой по умолчанию.
- •Синхронизация веб-базы данных
- •3.18.2. Настройка ленты пользователя
- •Вопросы для самопроверки и контроля
- •Глава 4. Субд Microsoft sql Server
- •4.1. Характеристика
- •4.2. Старт, остановка и приостановка sql Server
- •4.2.1. Старт sql Server
- •4.2.2. Приостановка sql Server
- •4.2.3. Остановка sql Server
- •4.2.4. Регистрация сервера
- •4.2.4.1. Окно регистрации сервера
- •4.3. Работа с базой данных
- •4.3.1. Организация и создание базы данных
- •4.3.1.1. Физическая организация
- •4.3.1.2. Размещение файлов
- •4.3.1.3. Создание базы данных средствами sql Server Enterprise
- •4.3.2. Создание и настройка таблицы базы данных
- •4.3.3. Создание и настройка диаграмм
- •4.3.4. Заполнение таблиц
- •4.3.5. Создание и настройка представлений
- •4.3.6. Язык запросов Transact‑sql
- •4.3.6.1. Основные элементы
- •4.3.6.2. Операции
- •4.3.6.3. Операторы
- •4.3.6.4. Базы данных
- •4.3.6.5. Таблицы
- •4.3.6.6. Запросы
- •4.3.6.7. Представления
- •4.3.6.8. Индексы
- •4.3.6.9. Статистика
- •4.3.6.10. Фрагментация
- •4.3.6.11. Курсоры
- •4.3.6.12. Транзакции и блокировки
- •4.3.6.13. Системные переменные, функции и хранимые процедуры
- •4.3.7. Хранимые процедуры
- •4.3.8. Создание триггеров
- •4.3.9. Формирование правил контроля вводимых значений
- •4.3.10. Формирование стандартных значений
- •4.4. Администрирование sql Server
- •4.4.1. Настройка параметров
- •4.4.2. Системные базы данных и таблицы
- •4.4.3. Тестирование и сжатие баз данных
- •4.4.4. Обмен данными с внешними системами
- •4.4.5. Создание резервных копий и восстановление баз данных
- •4.4.6. Использование службы выполнения расписаний sql Server Agent
- •4.4.7. Защита данных
- •4.4.8. Репликация данных
- •4.4.9. Взаимодействие sql‑сервера с Excel и Word
- •4.4.10. Перенос приложения Access в среду sql Server
- •В опросы для самопроверки и контроля
- •Глава 5. Субд Oracle
- •5.1. Основные понятия
- •5.1.1. Файлы данных и табличные пространства
- •5.1.2. Таблицы и индексы
- •5.1.3. Кластеры
- •5.1.4. Словарь данных
- •5.1.5. Объекты базы данных
- •5.1.6. Виды
- •5.1.7. Триггеры
- •5.1.12. Журналы транзакций
- •5.1.13. Экземпляр базы данных
- •5.1.14. Типы данных
- •5.1.14.1. Строки
- •5.1.14.2. Числа
- •5.1.14.3. Битовые строки
- •5.1.14.4. Дата и время
- •5.3.1. Таблицы
- •5.3.2. Представления
- •5.3.3. Запросы
- •5.3.4. Средства разграничения доступа
- •5.3.4.1. Создание и удаление пользователя
- •5.3.4.2. Привилегии
- •5.4.1. Правила написания программы
- •5.4.2. Операторы управления
- •5.4.3. Выражения
- •5.4.4. Переменные
- •5.4.4.1. Скалярные переменные
- •5.4.4.2. Объектные переменные
- •5.4.4.3. Записи
- •5.4.4.4. Коллекции
- •5.4.5. Пакеты
- •5.4.6. Процедуры и функции
- •5.4.7. Курсоры
- •5.4.8. Транзакции
- •5.4.9. Обработка исключений
- •5.4.10. Динамический sql‑оператор
- •5.4.11. Внедрение sql, pl/sql в прикладные программы
- •В опросы для самопроверки и контроля
- •Глава 6. Обзор субд
- •6.1. Российская субд линтер
- •Основные характеристики субд линтер
- •Количественные параметры бд линтер
- •6.2. Субд MySql
- •6.3. Субд InterBase
- •6.4. Субд Firebird
- •6.5. Субд db2
- •6.6. Субд progress
- •6.7. Субд PostgreSql
- •6.8. Субд oracle
- •6.9. Субд Microsoft sql Server
- •6.10. Постреляционная субд Cache’
- •6.11. Распределенная файловая система Google File System (gfs)
- •6.12. Berkeley db – движок для субд
- •6.13 Субд – движок sqLite
- •6.14 Субд Visual Clarion
- •Пункт меню «Личные карточки»:
- •Пункт меню «Выбор информации»
- •2.1. Движение кадров.
- •2.1.1. Приказы оПриеме на Работу.
- •Глава 7. Практикум
- •7.1. Язык запросов sql
- •7.1.1. Запросы на чтение данных
- •7.1.2. Запросы на обновление данных
- •7.1.3. Представления
- •7.2. Работа с базами данных
- •7.3. Курсовые работы
- •1. Учет успеваемости студентов.
- •2. Учет обмена валюты.
- •3. Учет объектов строительства.
- •4. Учет выдачи и возврата книг.
- •5. Учет авиапассажиров.
- •6. Учет производства сельскохозяйственных культур.
- •7. Учет выпуска изделий.
- •8. Учет платежей налогов.
- •9. Учет поставок товаров.
- •10. Учет сбросов отравляющих веществ в окружающую среду.
- •11. Учет уволившихся с предприятия.
- •12. Учет призеров Олимпийских игр.
- •14. Учет участников олимпиады.
- •15. Учет проданных товаров.
- •16. Учет малых предприятий.
- •17. Учет больных в больнице.
- •18. Учет движения общественного транспорта.
- •19. Учет дорожно-транспортных происшествий.
- •20. Учет платежных поручений в банке.
- •21. Учет договоров займа.
- •22. Учет проданных ценных бумаг.
- •23. Учет кадров.
- •24. Учет очередников на получение жилья.
- •25. Учет исполнительской дисциплины.
- •26. Учет книг в библиотеке.
- •27. Учет переселенцев.
- •28. Учет успеваемости школьников.
- •29. Учет нарушителей трудовой дисциплины на предприятии.
- •30. Учет семейного бюджета.
- •Приложения Приложение 1. Ответы на вопросы для самопроверки
- •Глава 1. Проектирование баз данных
- •Глава 2. Субд Visual FoxPro
- •Глава 3. Субд Access
- •Глава 4. Субд Microsoft sql Server
- •Глава 5. Субд Oracle
- •Приложение 2. Вопросы для экзаменационных билетов
- •Приложение 3. Встроенные функции субд Visual FoxPro
- •Математические функции
- •Строковые функции
- •Функции работы с датами
- •Функции преобразования типов данных
- •Функции проверки файлов и дисков
- •Функции времени
- •Функции анализа условий, типов и наличия данных
- •Функции подстановки
- •Функции работы с массивами
- •Функции работы с цветом
- •Приложение 4. События, методы и свойства объектов субд Visual FoxPro События
- •Свойства
- •Приложение 5. Встроенные функции pl/sql субд Oracle
- •Символьные функции
- •Функции преобразования
- •Календарные функции
- •Смешанные функции
- •Приложение 6. Оформление курсовой работы с примером Общие положения
- •Организация выполнения курсовой работы. Структура и требования к содержанию курсовой работы
- •Основные требования по оформлению курсовой работы
- •Оформление структурных элементов курсовой работы
- •Использование и оформление рисунков
- •Использование и оформление таблиц
- •Использование и оформление формул
- •Оформление примечаний и ссылок
- •Правила оформления списка использованных источников
- •Правила оформления приложений
- •Оформление содержания
- •Курсовая работа
- •Пример оформления курсовой работы
- •Курсовая работа
- •Содержание
- •Введение 3
- •Введение 12
- •Глава 1. Проектирование баз данных 14
- •Глава 2. Субд Visual FoxPro 213
- •Глава 3. Субд Access 308
- •Глава 4. Субд Microsoft sql Server 431
- •Глава 5. Субд Oracle 478
- •Глава 6. Обзор субд 506
- •Введение
- •1 Постановка задачи
- •2 Входная информация
- •3 Логическая модель базы
- •4 Выходная информация
- •5 Обращение к приложению
- •Заключение
- •Предметный указатель
- •Библиографический список
- •Плещёв Владимир Васильевич Базы данных.
- •С примерами и упражнениями
Пункт меню «Личные карточки»:
Сортировка по ФИО.
Рисунок 6.14.5 – Карточка
При нажатии на кнопки «Ввод» или «Редактирование» мы попадаем на аналогичные режимы работы с Личной карточкой работника.
Личная карточка работника.
Рисунок 6.14.6 – Общие данные
Рисунок 6.14.7 – Дата и место рождения
Рисунок 6.14.8 – Образование и вуз
Рисунок 6.14.9 – Назначения
Рисунок 6.14.10 – Отпуска
Рисунок 6.14.11 – Списки по цехам
Пункт меню «Выбор информации»
Рисунок 6.14.12 – Меню
2.1. Движение кадров.
2.1.1. Приказы оПриеме на Работу.
Рисунок 6.14.13 – Приказы о приеме на работу
Нужно было ввести Даты начала и Окончания отбора Приказов о приёме.Далее программа показывала список принятого персонала за период с расчетом Общего количества, с выделением временных работников и совместителей, а также расчет по категориям персонала. Эти расчеты входили в месячный отчет, который формировался также из программы, а средства выбора помогали при проверке правильности расчета.
2.1.2. Приказы о Перемещениях персонала.
Рисунок 6.14.14 – Приказы о перемещениях персонала
Группирование расчетов в ней производилось аналогично Приему на работу.
2.2. Выбор по Категориям персонала
2.2.1. Выбор по Категроиям.
Рисунок 6.14.15 – Выбор по категориям
При перемещении по категориям, автоматически просчитывалась численность персонала по данной категории.
Побуквенным вводом фамилии можно было найти нужного сотрудника данной категории.
2.2.2. Списки по Цехам и Категориям.
Рисунок 6.14.15 – Списки по цехам и категориям
Пункт меню «Отчеты».
В нём представлен один Отчет – Отчет по Энергосбыту – для Отдела Энергосбыта, над которым я работал до момента увольнения. Делать его в той версии, что у меня была на тот момент было очень неудобно. Но я все же справился! Расчет производился по месяцам и категориям.
Рисунок 6.14.16 – Отчет по энергосбыту
Глава 7. Практикум
7.1. Язык запросов sql
7.1.1. Запросы на чтение данных
В следующих упражнения из [18] используется базы данных «Поставки» с таблицами (ключевые поля подчеркнуты):
S – поставщики (Номер_поставщика, Фамилия, состояние, Город);
Р – детали (Номер_детали, Название, цвет, Вес, Город);
SP – поставки деталей (Номер_поставщика, Номер_детали, Количество);
J – изделия (Номер_изделия, Название, Город);
SPJ поставка деталей для изделий – (Номер_поставщика, Номер_детали, Номер_изделия, Количество).
Подзапросы
7.1.1.1 Выдать названия изделий, для которых поставляются детали поставщиком S1.
7.1.1.2. Выдать цвета деталей, поставляемых поставщиком S1.
7.1.1.3. Выдать номера деталей, поставляемых для какого-либо изделия в Лондоне.
7.1.1.4. Выдать номера изделий, использующих по крайней мере одну деталь, поставляемую поставщиком S1.
7.1.1.5. Выдать номера поставщиков, поставляющих по крайней мере одну деталь, поставляемую по крайней мере одним поставщиком, который поставляет по крайней мере одну красную деталь.
7.1.1.6. Выдать номера поставщиков, имеющих состояние меньшее, чем у поставщика S1.
7.1.1.7. Выдать номера поставщиков, поставляющих детали для какого-либо изделия с деталью Р1 в количестве, большем, чем средний объем поставок детали Р1 для этого изделия.
Квантор EXISTS
7.1.1.8. Повторите упражнение 7.1.1.3 и используйте в Вашем решении EXISTS.
7.1.1.9. Повторите упражнение 7.1.1.4 и используйте в Вашем решении EXISTS.
7.1.1.10. Выдать номера изделий, для которых не поставляет какой-либо красной детали поставщик из Лондона.
7.1.1.11. Выдать номера изделий, для которых детали полностью поставляет поставщик S1.
7. 1.1.12. Выдать номера деталей, поставляемых для всех изделий в Лондон.
7.1.1.13. Выдать номера поставщиков, поставляющих одну и ту же деталь для всех изделий.
7.1.1.14. Выдать номера изделий, для которых поставляются по крайней мере все детали, имеющиеся у поставщика S1.
Для следующих четырех упражнений преобразуйте приведенное предложение SELECT языка SQL обратно в его эквивалент на естественном языке.
7.1.1.15.
SELECT DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY
WHERE SPJY.НОМЕР_ИЗДЕЛИЯ=SPJX. НОМЕР_ИЗДЕЛИЯ AND NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SPJZ.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ AND SPJZ.НОМЕР_ПОСТАВЩИКА='S1'));
7.1.1.16.
DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE EXISTS (SELECT * FROM SPJ SPJX WHERE SPJ А.НОМЕР_ПОСТАВЩИКА = 'S1' AND SPJ А.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ) AND NOT EXISTS (SELECT * FROM SPJ SPJB WHERE SPJB. НОМЕР_ПОСТАВЩИКА='S1' AND SPJB. НОМЕР_ДETAЛИ=SPJY.НОМЕР_ДЕТАЛИ AND SPJB.НОМЕР_ИЗДEЛИЯ=SPJX.НОМЕР_ИЗДЕЛИЯ));
7.1.1.17.
SELECT DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE EXISTS (SELECT * FROM SPJ SPJA WHERE SPJA.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ AND SPJA.НОМЕР_ИЗДЕЛИЯ = SPJX.НОМЕР_ИЗДЕЛИЯ) AND NOT EXISTS (SELECT * FROM SPJ SPJB WHERE SPJB.НОМЕР_ПОСТАВЩИКА= 'S1' AND SPJB.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ AND SPJB.НОМЕР_ИЗДЕЛИЯ=SPJX.НОМЕР_ИЗДЕЛИЯ));
7.1.1.18.
SELECT DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE EXISTS (SELECT * FROM SPJ SPJA WHERE SPJA.НОМЕР_ПОСТАВЩИКА =PJY.НОМЕР_ПОСТАВЩИКА AND SPJA. НОМЕР_ДЕТАЛИ IN (SELECT НОМЕР_ДЕТАЛИ ROM P WHERE ЦВЕТ = 'Красный') AND NOT EXISTS (SELECT * FROM SPJ SPJB WHERE SPJB.НОМЕР_ПОСТАВЩИКА = SPJY.НОМЕР_ПОСТАВЩИКА AND SPJB.НОМЕР_ИЗДЕЛИЯ = SPJX.НОМЕР_ИЗДЕЛИЯ)));
Стандартные функции
7.1.1.19. Выдать общее число изделий, для которых поставляет детали поставщик S1.
7.1.1.20. Выдать общее количество деталей Р1, поставляемых поставщиком S1.
7.1.1.21. Для каждой поставляемой для некоторого изделия детали выдать ее номер, номер изделия и соответствующее общее количество деталей.
7.1.1.22. Выдать номера изделий, для которых город является первым в алфавитном списке таких городов.
7.1.1.23. Выдать номера изделий, для которых средний объем поставки деталей Р1 больше наибольшего объема поставки любой детали для изделия J 1.
7.1.1.24. Выдать номера поставщиков, поставляющих деталь Р1 для какого-либо изделия в количестве, большем среднего объема поставок детали Р1 для этого изделия.
Объединение
7.1.1.25. Постройте упорядоченный список всех городов, в которых размещаются по крайней мере один поставщик, деталь или изделие.
7.1.1.26. Приведите результат следующего предложения SELECT:
SELECT P.ЦВЕТ FROM P UNION SELECT P. ЦВЕТ FROM P;
Ответы к некоторым упражнениям
Следующие ответы не обязательно являются единственно возможными.
7.1.1.1.
SELECT НАЗВАНИЕ FROM J WHERE НОМЕР_ИЗДЕЛИЯ IN (SELECT НОМЕР_ИЗДЕЛИЯ FROM SPJ WHERE НОМЕР_ПОСТАВЩИКА =’S1’);
7.1.1.2.
SELECT DISTINCT ЦВЕТ FROM P WHERE НОМЕР_ДЕТАЛИ IN (SELECT НОМЕР_ДЕТАЛИ FROM SPJ WHERE НОМЕР_ПОСТАВЩИКА='S1');
7.3.
SELECT DISTINCT Н ОМЕР_ДЕТАЛИ FROM SPJ WHERE НОМЕР_ИЗДЕЛИЯ IN (SELECT НОМЕР_ИЗДЕЛИЯ FROM J WHERE ГОРОД = 'Лондон');
7.1.1.4.
SELECT DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ WHERE НОМЕР_ДЕТАЛИ IN (SELECT НОМЕР_ДЕТАЛИ FROM SPJ WHERE НОМЕР_ПОСТАВЩИКА='S1');
7.1.1.5.
SELECT DISTINCT НОМЕР_ПОСТАВЩИКА FROM SPJ WHERE НОМЕР_ДЕТАЛИ IN (SELECT НОМЕР_ДЕТАЛИ FROM SPJ WHERE НОМЕР_ПОСТАВЩИКА IN (SELECT НОМЕР_ПОСТАВЩИКА FROM SPJ WHERE НОМЕР_ДЕТАЛИ IN (SELECT НОМЕР_ДЕТАЛИ FROM Р WHERE ЦВЕТ = 'Красный')));
7.1.1.6.
SELECT НОМЕР_ПОСТАВЩИКА FROM S WHERE СОСТОЯНИЕ <
(SELECT СОСТОЯНИЕ FROM S WHERE НОМЕР_ПОСТАВЩИКА = 'S1');
7.1.1.7.
SELECT DISTINCT НОМЕР_ПОСТАВЩИКА FROM SPJ SPJX WHERE НОМЕР_ДЕТАЛИ = 'Р1’ КОЛИЧЕСТВО > (SELECT AVG (КОЛИЧЕСТВО) FROM SPJ SPJY WHERE НОМЕР_ДЕТАЛИ = 'Р1'
AND SPJY.НОМЕР_ИЗДЕЛИЯ=SPJX.НОМЕР_ИЗДЕЛИЯ);
7.8
SELECT DISTINCT НОМЕР_ДЕТАЛИ FROM SPJ WHERE EXISTS (SELECT * FROM J WHERE НОМЕР_ИЗДЕЛИЯ = SPJ.НОМЕР_ИЗДЕЛИЯ AND ГОРОД = 'ЛОНДОН');
7.9.
SELECT DISTINCT SPJX.HOMEP_ИЗДЕЛИЯ FROM SPJ SPJX WHERE EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.HOMEP_ДЕТАЛИ=SPJX.HOMEP_ДЕТАЛИ AND SPJY.НОМЕР_ПОСТАВЩИКА = 'S1');
7.1.1.10.
SELECT НОМЕР_ИЗДЕЛИЯ FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE НОМЕР_ИЗДЕЛИЯ = J.НОМЕР_ИЗДЕЛИЯ AND НОМЕР_ДЕТАЛИ IN (SELECT НОМЕР_ДЕТАЛИ FROM P WHERE ЦВЕТ = 'Красный') AND НОМЕР_ПОСТАВЩИКА IN (SELECT НОМЕР_ПОСТАВЩИКА FROM S WHERE ГОРОД = 'Лондон'));
7.1.1.11.
SELECT НОМЕР_ИЗДЕЛИЯ J FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.НОМЕР_ИЗДЕЛИЯ =SPJX.НОМЕР_ИЗДЕЛИЯ AND SPJY.НОМЕР_ПОСТАВЩИКА<> ‘S1’);
7.1.1.12.
SELECT DISTINCT НОМЕР_ДЕТАЛИ FROM SPJ SPJX WHERE NOT EXISTS (SELECT * FROM J WHERE ГОРОД == 'Лондон');
7.1.1.13.
SELECT DISTINCT НОМЕР_ПОСТАВЩИКА FROM SPJ SPJX WHERE EXISTS
(SELECT НОМЕР_ДЕТАЛИ FROM P WHERE NOT EXISTS (SELECT НОМЕР_ИЗДЕЛИЯ FROM J WHERE NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SPJZ.НОМЕР_ПОСТАВЩИКА =
SPJX.HOMEP_ ПОСТАВЩИКА AND SPJZ.НОМЕР_ДЕТАЛИ = P.НОМЕР_ДЕТАЛИ AND SPJZ.НОМЕР_ИЗДЕЛИЯ= J.НОМЕР_ИЗДЕЛИЯ)));
7.1.1.14
SELECT DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX WHERE NOT EXISTS (SELECT НОМЕР_ДЕТАЛИ FROM SPJ SPJY WHERE SPJY.НОМЕР_ПОСТАВЩИКА = 'S1' AND NOT EXISTS (SELECT * FROM SPJ SPJZ WHERE SPJZ.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ AND SPJZ.НОМЕР_ИЗДЕЛИЯ = SPJX.НОМЕР_ИЗДЕЛИЯ));
7.1.1.15. Выдать номера изделий, использующих только детали, поставляемые поставщиком S1.
7.1.1.16. Выдать номера изделий, для которых поставщик S1 поставляет несколько деталей каждого из поставляемых им типов.
7.1.1.17. Выдать номера деталей, таких, что по крайней мере несколько деталей каждого типа, которые в них используются, поставляется для них поставщиком S1.
7.1.1.18. Выдать номера изделий, детали для которых поставляет каждый поставщик, поставляющий какую-либо красную деталь.
7.1.1.19.
SELECT COUNT (DISTINCT НОМЕР_ИЗДЕЛИЯ) FROM SPJ WHERE НОМЕР_ПОСТАВЩИКА == 'S1';
7.1.1.20.
SELECT SUM (КОЛИЧЕСТВО) FROM SPJ WHERE НОМЕР_ДЕТАЛИ = ‘P1’AND НОМЕР_ПОСТАВ ЩИКА = 'S1';
7.1.1.21.
SELECT НОМЕР_ДЕТАЛИ, НОМЕР_ИЗДЕЛИЯ, SUM (КОЛИЧЕСТВО) FROM SPJ GROUP BY НОМЕР_ДЕТАЛИ, НОМЕР_ИЗДЕЛИЯ;
7.1.1.22.
SELECT НОМЕР_ИЗДЕЛИЯ FROM J
WHERE ГОРОД =(SELECT MIN (ГОРОД) FROM J);
7.1.1.23.
SELECT НОМЕР_ИЗДЕЛИЯ FROM SPJ WHERE НОМЕР_ДЕТАЛИ = 'PI' GROUP BY НОМЕР_ИЗДЕЛИЯ HAVING AVG (КОЛИЧЕСТВО) > (SELECT MAX (КОЛИЧЕСТВО) FROM SPJ WHERE НОМЕР_ ИЗДЕЛИЯ = 'J1');
7.1.1.24.
SELECT DISTINCT НОМЕР_ПОСТАВЩИКА FROM SPJ SPJX WHERE НОМЕР_ДЕТАЛИ = 'P1' AND КОЛИЧЕСТВО > (SELECT AVG (КОЛИЧЕСТВО) FROM SPJ SPJY WHERE НОМЕР_ДЕТАЛИ ='Р1’
AND SPJY.НОМЕР_ИЗДЕЛИЯ=SPJX.НОМЕР_ИЗДЕЛИЯ);
7.1.1.25.
SELECT ГОРОД FROM S UNION
SELECT ГОРОД FROM P UNION SELECT ГОРОД FROM J ORDER BY 1;
7.1.1.26. Список наименований цветов деталей без повторения.
