
- •Информационное обеспечение систем управления
- •Содержание
- •1 Архитектуры обработки данных. 8
- •2 Способы организации данных. 10
- •3 Язык sql как язык работы с реляционными базами. 12
- •4 Данные и взаимосвязи. 13
- •5 Основы методологии idef1x 19
- •Insert into тклиент 46
- •1Архитектуры обработки данных.
- •1.1Архитектура хост/терминал.
- •1.2А рхитектура файл/сервер.
- •1.3Архитектура клиент/сервер.
- •1.4Многозвенная архитектура.
- •2Способы организации данных.
- •2.1Сетевая модель данных
- •2.2Реляционная модель данных.
- •3Язык sql как язык работы с реляционными базами.
- •4Данные и взаимосвязи.
- •4.1Объекты.
- •4.2Первичные ключи. Что выбрать в качестве первичных ключей для каждой из таблиц?
- •4.3Нормализация данных.
- •4.3.1Первая нормальная форма.
- •4.3.2 Вторая нормальная форма.
- •4.3.3Третья нормальная форма.
- •4.4Типы данных.
- •4.4.1Числовые целые типы данных.
- •4.4.2Числовые типы данных с плавающей точкой.
- •4.4.3Символьные типы данных.
- •4.4.4. Типы данных date, time и datetime.
- •4.4.5Специальные типы данных.
- •5Основы методологии idef1x
- •5.1Предназначение idef1x
- •5.2Сущности в idef1x и их атрибуты.
- •5.3Связи между сущностями
- •5.4Идентификация сущностей. Представление о ключах.
- •5.5Классификация сущностей в idef1x. Зависимые и независимые сущности.
- •5.6Типы связей между сущностями. Идентифицирующие и неидентифицирующие связи.
- •5.7Преимущества idef1x
- •5.8Модель «склад» в нотации idef1x
- •6.1Структура запроса, основные ключевые слова и операторы
- •6.1.1 Список основных операторов sql
- •6.1.2 Список основных ключевых слов sql
- •6.2Оператор select
- •6.2.1Предложение select
- •6.2.2Предложение from
- •6.2.2.1Повторяющиеся строки (ключевое слово distinct).
- •6.2.3Предложение where
- •6.2.4Условия поиска.
- •6.2.4.2Составные условия поиска (and, or и not)
- •6.2.4.3Проверка на принадлежность диапазону значений (between)
- •6.2.4.4Проверка на членство в множестве (in)
- •6.2.4.5Проверка на равенство значению null (is null)
- •6.2.4.6Проверка на соответствие шаблону (like)
- •6.2.4.7Подстановочные знаки
- •6.2.5Сортировка результатов запроса (предложение order by)
- •6.2.6 Агрегатные функции
- •6.2.6.1Вычисление суммы столбца (sum)
- •6.2.6.2Вычисление экстремумов (min и max)
- •6.2.6.3Вычисление среднего значения (avg)
- •6.2.6.4Вычисление количества значений в столбце (count)
- •6.2.7Запросы с группировкой (предложение group by)
- •6.2.8Условия поиска групп having
- •6.3Работа с несколькими таблицами
- •6.3.1Объединение при помощи оператора where
- •6.3.2Внутренние и внешние объединения
- •6.4 Вложенные запросы
- •6.4.1Исходная база данных
- •6.4.2Вложение запросов.
- •6.4.3Оператор exists
- •6.5Объединение множества запросов в один
- •6.5.1Когда можно выполнить объединение запросов ?
- •6.5.2Использование union с order by.
- •6.6Команды модификации данных
- •6.6.1Ввод значений (insert)
- •6.6.1.1Вставка пустых указателей (null)
- •6.6.1.2Именование названий столбцов для вставки
- •6.6.1.3Вставка результатов запроса
- •6.6.2Удаление строк из таблиц (delete)
- •6.6.3Изменение значений поля (update)
- •6.6.4Использование подзапросов для команд модификации данных
- •6.6.4.1Использование подзапросов в insert
- •6.6.4.2Использование подзапросов с delete
- •6.7Модификация структуры данных
- •6.7.1Команда сreate table
- •6.7.2Команда alter table.
- •6.7.3Команда drop table
Министерство образования Российской федерации
Пермский государственный технический университет
И. А. Шмидт
Информационное обеспечение систем управления
Пермь 2003
УДК
Рецензенты:
д-р. техн. наук, проф. С. В. Бочкарев (Пермский государственный технический университет).
канд. техн.наук, доцент В. П. Казанцев (Пермский государственный технический университет).
Шмидт И. А.
Информационное обеспечение систем управления: конспект лекций /Перм. гос. техн. ун-т. Пермь, 2003. 43 с.
Представлен конспект лекций по курсу «Информационное обеспечение систем управления» для направления подготовки дипломированного специалиста 654500 «Электротехника, электромеханика и электротехнологии» специальности 180400 «Электропривод и автоматика промышленных установок и технологических комплексов» дневного и заочного отделений.
Конспект лекций рекомендуется для студентов изучающих курсы: «Информационное обеспечение систем управления» специальности 210200 «Автоматизация технологических процессов и производств».
Содержание
1 Архитектуры обработки данных. 8
1.1 Архитектура хост/терминал. 8
Рис.1. Архитектура хост/терминал. 8
1.2 Архитектура файл/сервер. 8
Рис.2.Архитектура файл/сервер. 8
Появление персональных компьютеров и локальных вычислительных сетей привело к разработке архитектуры файл/сервер. При такой архитектуре приложение, выполняемое на персональном компьютере, может получить “прозрачный” доступ к файл-серверу, на котором хранятся совместно используемые файлы. Когда приложению, работающему на ПК, требуется данные из совместно используемого файла, сетевое программное обеспечение автоматически считывает требуемый блок данных с сервера. В этой архитектуре мы имеем дело с файловым сервером. В данной архитектуре вопросами целостности должно заниматься каждое приложение. 9
1.3 Архитектура клиент/сервер. 9
Рис.3. Архитектура клиент/сервер. 9
1.4 Многозвенная архитектура. 10
Рис.4.Многозвенная архитектура. 10
2 Способы организации данных. 10
2.1 Сетевая модель данных 10
Рис.5.Структура сущность-связь. 11
2.2 Реляционная модель данных. 11
3 Язык sql как язык работы с реляционными базами. 12
4 Данные и взаимосвязи. 13
4.1 Объекты. 13
Таблица Документ 14
Таблица Клиент 14
Таблица Склад 14
Таблица Перемещение 14
Таблица Остатки 14
4.2 Первичные ключи. Что выбрать в качестве первичных ключей для каждой из таблиц? 15
4.3 Нормализация данных. 15
4.3.1 Первая нормальная форма. 16
4.3.2 Вторая нормальная форма. 16
4.3.3 Третья нормальная форма. 16
4.4 Типы данных. 17
4.4.1 Числовые целые типы данных. 17
4.4.2 Числовые типы данных с плавающей точкой. 17
4.4.3 Символьные типы данных. 18
4.4.4 . Типы данных date, time и datetime. 18
4.4.5 Специальные типы данных. 19
5 Основы методологии idef1x 19
5.1 Предназначение IDEF1X 19
5.2 Сущности в IDEF1X и их атрибуты. 19
5.3 Связи между сущностями 20
5.4 Идентификация сущностей. Представление о ключах. 21
5.5 Классификация сущностей в IDEF1X. Зависимые и независимые сущности. 23
5.6 Типы связей между сущностями. Идентифицирующие и неидентифицирующие связи. 23
5.7 Преимущества IDEF1X 24
5.8 Модель «склад» в нотации IDEF1X 24
6 SQL (Structured System Language) 26
6.1 Структура запроса, основные ключевые слова и операторы 26
Рис.9 27
DELETE FROM ДОКУМЕНТ WHERE ДАТА>’1.03.2000’ 27
6.1.1 Список основных операторов SQL 27
6.1.2 Список основных ключевых слов SQL 27
6.2 Оператор SELECT 27
SELECT * FROM ДОКУМЕНТ 28
SELECT КОД,ДАТА,НОМЕР FROM ДОКУМЕНТ. 28
WHERE условие поиска 29
GROUP BY имя столбца 29
HAVING условие поиска 29
ORDER BY спецификатор сортировки 29
6.2.1 Предложение SELECT 29
6.2.2 Предложение FROM 29
SELECT * FROM ГОРОДА 29
SELECT DISTINCT ДАТА FROM ДОКУМЕНТ 30
6.2.3 Предложение WHERE 30
SELECT IDN_КЛИЕНТА 30
FROM ДОКУМЕНТ 30
SELECT * 30
FROM ДОКУМЕНТ 30
SELECT IDN_КЛИЕНТА 30
FROM ДОКУМЕНТ 30
6.2.4 Условия поиска. 30
Синтаксическая диаграмма сравнения 31
NOT 31
AND 31
OR 31
Таблица истинности операции AND. 31
SELECT * 31
FROM ДОКУМЕНТ 31
OR (ДАТА=’18.01.2000’) AND NOT (ДАТА=’8.03.2000’) 32
SELECT * 32
FROM ДОКУМЕНТ 32
NOT 32
SELECT * 32
FROM ДОКУМЕНТ 32
SELECT * 32
FROM ПЕРЕМЕЩЕНИЕ 32
SELECT * 32
FROM ДОКУМЕНТ 32
SELECT * 32
FROM ПЕРЕМЕЩЕНИЕ 32
NOT 33
SELECT * 33
FROM КЛИЕНТ 33
SELECT НАЗВАНИЕ 33
FROM КЛИЕНТ 33
SELECT НАЗВАНИЕ(ИМЯ) 33
FROM КЛИЕНТ 33
SELECT * 33
FROM КЛИЕНТ 33
6.2.5 Сортировка результатов запроса (предложение ORDER BY) 33
SELECT * 34
FROM СКЛАД 34
Для сортировки в обратном порядке используется ключевое слово DESC. 34
6.2.6 Агрегатные функции 34
SELECT ДАТА_ДОК 34
FROM ПЕРЕМЕЩЕНИЕ 34
WHERE ДАТА_ДОК BETWEEN ‘1.01.2000’ AND ’31.01.2000’ 34
SELECT MAX (ЦЕНА) 34
FROM ПЕРЕМЕЩЕНИЕ 34
Когда был сделан самый первый из всех содержащихся в базе данных документ? 34
SELECT MIN (ДАТА) 34
FROM ДОКУМЕНТ 34
SELECT AVG(ЦЕНА),AVG(КОЛИЧЕСТВО) 35
FROM ОСТАТКИ 35
SELECT COUNT(*) 35
FROM КЛИЕНТ 35
WHERE НАЗВАНИЕ LIKE ‘%ЗАО%’ 35
6.2.7 Запросы с группировкой (предложение GROUP BY) 35
SELECT ДАТА_ДОК, SUM (КОЛ-ВО*ЦЕНА) 35
FROM ПЕРЕМЕЩЕНИЕ 35
WHERE ДАТА_ДОК BETWEEN ‘1.01.2000’ AND ’31.01.2000’ 35
SELECT IDN_МАТ.ЦЕН, AVG(ЦЕНА) 35
FROM ПЕРЕМЕЩЕНИЕ 35
GROUP BY IDN_МАТ.ЦЕН 35
6.2.8 Условия поиска групп HAVING 36
SELECT ДАТА_ДОК, SUM (КОЛ-ВО*ЦЕНА) 36
SUM (КОЛ-ВО*ЦЕНА) 36
FROM ПЕРЕМЕЩЕНИЕ 36
WHERE ДАТА_ДОК BETWEEN ‘1.01.2000’ AND ’31.01.2000’ 36
SELECT IDN_ГОРОДА 36
FROM КЛИЕНТ 36
6.3 Работа с несколькими таблицами 36
6.3.1 Объединение при помощи оператора WHERE 36
SELECT ГОРОДА.НАЗВАНИЕ, КЛИЕНТ.НАЗВАНИЕ(ИМЯ) 36
FROM ГОРОДА,КЛИЕНТ 36
WHERE ГОРОДА.IDN=КЛИЕНТ.IDN_ГОРОДА 36
SELECT Г.НАЗВАНИЕ, К.НАЗВАНИЕ(ИМЯ) 37
FROM ГОРОДА Г., КЛИЕНТ К. 37
WHERE Г.IDN=K.IDN_ГОРОДА AND Г.НАЗВАНИЕ=’Москва’ 37
SELECT ГР.НАЗВАНИЕ, SUM(П.КОЛ-ВО*П.ЦЕНА) 37
FROM ГРУППЫ ГР., ПЕРЕМЕЩЕНИЕ П. 37
WHERE ГР.IDN=П.IDN_ГРУППЫ AND П.ДАТА_ДОК 37
BETWEEN ‘1.02.2000’ AND ’16.03.2000’ 37
6.3.2 Внутренние и внешние объединения 37
SELECT ГОРОДА.НАЗВАНИЕ, КЛИЕНТ.НАЗВАНИЕ(ИМЯ) 37
SELECT ГОРОДА.НАЗВАНИЕ, КЛИЕНТ.НАЗВАНИЕ(ИМЯ) 38
SELECT ГОРОДА.НАЗВАНИЕ, КЛИЕНТ.НАЗВАНИЕ(ИМЯ) 38
6.4 Вложенные запросы 38
6.4.1 Исходная база данных 38
6.4.2 Вложение запросов. 39
Предположим, необходимо извлечь всю информацию о банке с которым 39
SELECT * FROM БАНКИ 39
WHERE IDN =(SELECT IDN_БАНКА FROM КЛИЕНТ WHERE ИМЯ=‘Киров’) 39
WHERE IDN =323 40
После этого основной запрос выполняется как обычный, его результат показан 40
WHERE IDN =323 40
SELECT Г.НАЗВАНИЕ, М НАЗВАНИЕ, П.ЦЕНА 40
FROM Группы Г, МАТ.ЦЕННОСТИ М, ПЕРЕМЕЩЕНИЕ П 40
WHERE М.IDN_ГРУППЫ = П.IDN_ГРУППЫ 40
AND М.IDN_МАТ.ЦЕН. = П.IDN_МАТ.ЦЕН. 40
AND Г.IDN = П.IDN_ГРУППЫ 40
AND П.ЦЕНА = (SELECT MIN (ЦЕНА) FROM Перемещение ПВНУТР 40
6.4.3 Оператор EXISTS 41
SELECT * FROM КЛИЕНТ 41
WHERE EXISTS 41
SELECT ГРУППЫ.НАЗВАНИЕ 41
FROM ГРУППЫ 41
WHERE EXISTS 41
6.5 Объединение множества запросов в один 42
SELECT РЕКВИЗИТЫ FROM БАНКИ 42
WHERE РЕКВИЗИТЫ LIKE ‘М%’. 42
UNION 42
SELECT НАЗВАНИЕ FROM ГОРОДА 42
6.5.1 Когда можно выполнить объединение запросов ? 42
Есть таблицы клиентов и банков, сделать таблицу объединения с указанием 42
SELECT ‘ физ.’, ИМЯ FROM КЛИЕНТ 42
UNION 43
SELECT ‘ юр.’, РЕКВИЗИТЫ FROM БАНКИ 43
6.5.2 Использование UNION с ORDER BY. 43
ORDER BY A, 43
UNION 43
SELECT ‘юр.’, РЕКВИЗИТЫ ИМЯ FROM БАНКИ 43
ORDER BY 2 43
6.6 Команды модификации данных 44
6.6.1 Ввод значений (INSERT) 44
6.6.2 Удаление строк из таблиц (DELETE) 45
6.6.3 Изменение значений поля (UPDATE) 45
UPDATE КЛИЕНТ 45
SET IDN= IDN +5 45
UPDATE КЛИЕНТ 46
SET IDN_банка = IDN_банка 54 46
WHERE IDN_банка = 23 46
UPDATE КЛИЕНТ 46
SET Название = ‘Московские баранки’, 46
Реквизиты = ‘Политехнический проезд 12’ 46
WHERE IDN = 1001 46
6.6.4 Использование подзапросов для команд модификации данных 46