厥偃孼診打

advertisement
Информационные системы и базы данных
Определение информационной системы (ИС) согласно Федеральному
закону РФ от 27 июля 2006 г. N 149-ФЗ «Об информации,
информационных технологиях и о защите информации»:
«информационная система — совокупность содержащейся в базах
данных информации и обеспечивающих ее обработку
информационных технологий и технических средств».
В широком смысле в понятие ИС также включают системный
персонал.
Классификация ИС:
по области применения (системы, используемые в производстве,
образовании, здравоохранении, торговле и др. отраслях);
по целевой функции
– управляющие;
– информационно-справочные;
– поддержки-принятия решений.
База данных (БД) - это интегрированная компьютерная структура
совместного доступа, в которой храниться совокупность специальным
образом организованных данных, отображающих состояние объектов
и их взаимосвязей в рассматриваемой предметной области.
1
СУБД
Система управления базами данных (СУБД) – это
комплекс языковых и программных средств, с помощью
которых осуществляется управление структурой базы
данных и контроль доступа к данным, хранящимся в ней.
В общем случае под СУБД можно понимать любой
программный продукт, поддерживающий процессы
создания, ведения и использования БД.
К СУБД относятся следующие основные виды программ:
• полнофункциональные СУБД;
• серверы БД;
• клиенты БД;
• средства разработки программ работы с БД.
2
Классификация СУБД
По характеру использования (масштабируемости):
• однопользовательские или персональные;
• многопользовательские.
по архитектуре:
• централизованные
• Распределенные.
по особенностям функционирования в бизнес-среде:
• транзакционные (операционные). Для систем по продаже
товаров услуг, систем электронных платежей, банковских системы.
Основная функция – одновременное выполнение коротких
транзакций. Время, отводимое на выполнение таких операций,
ограничено, а результат должен фиксироваться и вступать в силу
немедленно.
• поддержки принятия решений, которые требуют
широкомасштабной обработки данных, и фактор времени,
затраченного на получение результата в такой системе, не имеет
столь существенного значения, как в транзакционных базах
данных.
3
Модели баз данных
Модель базы данных это совокупность логических конструкций,
используемых для представления структуры данных и отношений
между ними внутри БД. Модели баз данных можно подразделить
на две категории:
• концептуальная модель нацелена на логическую природу
представления данных. В ней основное внимание уделяется
тому, что представлено в БД, а не как это представлено. К
концептуальным моделям относятся модель «сущность-связь»
(ER-модель);
• модель реализации нацелена на то, как реализовать структуры
данных, чтобы получить представление о том, что
моделируется. К моделям реализации БД относится
реляционная модель.
СУБД также часто классифицируют по используемой модели
данных. СУБД, использующую реляционную модель данных
называют реляционной СУБД.
4
Представление концептуальной модели с помощью ER-диаграммы
Основу ER-модели составляют следующие компоненты.
Сущность (логический объект) – персона, местоположение или предмет,
сведения о которых подлежат сбору и хранению. Сущность представлена в
виде прямоугольника. Название сущности (имя существительное)
записывается в центре прямоугольника, как правило, заглавными буквами
и предпочтительнее в единственном числе на русском языке (ПРОДУКТ
лучше, чем Продукты). Если ER-диаграмма связана с реляционной
моделью, сущность отображается на реляционную таблицу. Каждая строка
реляционной таблицы соответствует экземпляру сущности.
Сущность описывается набором атрибутов. Каждый атрибут описывает
отдельное свойство сущности. Например, сущность ОБОРУДОВАНИЕ имеет
такие атрибуты, как наименование, геометрические размеры, масса и т.д.
Связь описывает соединение между данными. Большинство связей
описывает соединение между двумя сущностями. Для обозначения типа
связи используется термин связность (на ER-диаграммах связность
записывается рядом с прямоугольником, соответствующим сущности).
Связь изображается на ER-диаграмме ромбом, соединенным с
соответствующей сущностью. Название связи (в глагольной форме)
записывается внутри ромба.
5
Типы связей на ER-диаграммах
Один-ко-многим. 1:М
«ПРОДУКТ относится к ТИПУ ПРОДУКТОВ»
К одному и тому же типу продуктов может относиться несколько продуктов,
но каждый из продуктов относится только к одному типу.
Многие-ко-многим. M:N
«ОБОРУДОВАНИЕ используется в ТЕХНОЛОГИЧЕСКОМ ПРОЦЕССЕ»
Одно и то же оборудование может быть задействовано в разных
технологических процессах. В то же время в одном технологическом
процессе может использоваться разное оборудование.
Один-к-одному. 1:1
«ПРОДУКТ изготавливается по ТЕХНОЛОГИЧЕСКОМУ ПРОЦЕССУ»
Для каждого продукта существует один технологически процесс, по которому
он изготавливается. В свою очередь каждый технологический процесс
существует для одного продукта.
6
Изображение связей на ER-диаграммах
Представленная ER-диаграмма, построена на основе так называемой модели Чена
(автор Питер Чен). На ней связи обозначаются ромбами, а сущности —
прямоугольниками.
М
1
ТИП ПРОДУКТА
относится
М
М
ТЕХНОЛОГИЧЕСКИЙ
ПРОЦЕСС
используется
ОБОРУДОВАНИЕ
1
ПРОДУКТ
ПРОДУКТ
1
изготавливается
ТЕХНОЛОГИЧЕСКИЙ
ПРОЦЕСС
7
Изображение связей на ER-диаграммах
Другой широко известный способ построения ER-диаграмм называется
«птичья лапка». Название «птичья лапка» произошло от специфичного вида
символа, которым обозначается связь в направлении «многие».
ТИП
ПРОДУКТА
ОБОРУДОВАНИЕ
ПРОДУКТ
относится
ПРОДУКТ
используется
ТЕХНОЛОГИЧЕСКИЙ
ПРОЦЕСС
изготавливается
ТЕХНОЛОГИЧЕСКИЙ
ПРОЦЕСС
8
Реляционная модель данных
Реляционная модель состоит из трех частей:
• структурной части;
• целостной части;
• манипуляционной части.
Структурная часть описывает, какие объекты рассматриваются
реляционной моделью. Постулируется, что единственной структурой
данных, используемых в реляционной модели, являются
нормализованные n-арные отношения. Отношения (relation) в
реляционной модели представляются в виде таблиц (создатель
реляционной модели Э. Ф. Кодд использовал термин «отношение»
как синоним слова «таблица»).
Под таблицей понимается двумерная структура, состоящая из строк
и столбцов, содержащая некоторые данные. Таблица содержит
группу связанных сущностей, т. е. набор сущностей; по этой причине
термины набор сущностей и таблица чаще всего означают одно и
то же. Табличное представление данных помогает определить связи
сущностей, значительно упрощая задачу проектирования БД.
9
Свойства реляционных таблиц
• Таблица (отношение) представляет собой двумерную структуру,
состоящую из строк (кортежей) и столбцов (атрибутов).
Количество строк называется мощностью отношения, а
количество столбцов – степенью отношения.
• Каждая строка таблицы (кортеж) представляет собой отдельную
сущность внутри набора сущностей.
• Каждый столбец таблицы представляет собой атрибут, и у каждого
столбца есть свое имя.
• На каждом пересечении строки и столбца имеется единственное
значение.
• Каждая таблица должна иметь атрибут или несколько атрибутов,
уникально идентифицирующих каждую строку – первичный ключ.
• Все значения в столбце должны отображаться в одинаковом
формате.
• Каждый столбец имеет определенный диапазон значений,
называемый доменом атрибута.
• Порядок следования строк и столбцов для СУБД не существенен.
10
Типы и назначение ключей
•
•
•
•
•
•
Суперключ - атрибут (или комбинация атрибутов), уникально идентифицирующий
каждую сущность в таблице.
Потенциальный ключ - минимальный суперключ. Суперключ, который не содержит
подмножества атрибутов, которое само по себе является суперключом.
Первичный ключ - потенциальный ключ, выбранный для уникальной
идентификации всех остальных значений атрибутов в любой строке. НЕ может
содержать пустых значений.
Альтернативный ключ - потенциальный ключ, который не был выбран в качестве
первичного ключа.
Вторичный ключ - Атрибут (или комбинация атрибутов), используемый
исключительно в целях поиска данных и не требующий уникальности.
Внешний ключ - атрибут (или комбинация атрибутов) в одной таблице, значения
которого должны или совпадать со значениями первичного ключа в другой таблице,
или быть пустыми (null).
Ключи обычно используют для достижения следующих целей:
1. исключения дублирования значений в ключевых атрибутах.
2. упорядочения кортежей. Возможно упорядочение по возрастанию или убыванию
значений всех ключевых атрибутов, а также смешанное упорядочение (по одним –
возрастание, по другим – убывание).
3. ускорения работы с кортежами отношения.
4. организации связывания таблиц
11
Связывание таблиц
Логическое связывание таблиц производится с помощью ключа
связи. Ключ связи по аналогии с обычным ключом таблицы, состоит
из одного или нескольких полей, которые в данном случае называют
полями связи.
Суть связывания состоит в установлении соответствия полей связи
между двумя таблицами, т.е. связь создается, когда две таблицы
совместно используют один атрибут с общим значением.
Конкретнее, первичный ключ одной таблицы появляется в качестве
внешнего (foreign) ключа в связанной таблице.
Связь 1:М имеет место в случае, когда одной записи первой (иногда
ее еще называют главной) таблицы соответствует несколько записей
второй (подчиненной) таблицы.
12
Организация связи многие-ко-многим в реляционных СУБД
Связь вида М:N возникает в случаях, когда нескольким записям одной таблицы,
соответствует несколько записей другой таблицы. При этом каждая сторона
отношения выглядит как отношение один-ко-многим. Однако если рассматривать
взаимосвязь таблиц с двух сторон, становится очевидным, что ни одна из таблиц не
может быть главной и для их связывания необходима третья таблица. Связующая
таблица представляет собой промежуточную таблицу, которая служит мостом
между двумя таблицами в отношении многие-ко-многим. Ее ключ состоит из
ключевых полей этих таблиц, с каждой из которых она связана отношением одинко-многим. Помимо ключевых полей, связующая таблица может содержать
дополнительные поля, которых нет в связываемых таблицах, но которые могут
иметь значение для каждой из них. Таким образом, отношение многие-ко-многим
складывается из отношений многие-к-одному и один-ко-многим.
13
Целостная часть реляционной модели
Целостность БД есть свойство БД, означающее, что в
ней содержится полная, непротиворечивая и адекватно
отражающая предметную область информация.
База данных не понимает «смысла» хранимых данных.
«Смыслом» данных для СУБД является весь набор
ограничений целостности. Если все ограничения
выполнены, то СУБД считает, что данные корректны.
Ограничение целостности - это некоторое
утверждение, которое может быть истинным или
ложным в зависимости от состояния базы данных.
Поддержка ограничений целостности, которые
являются следствием реляционной модели данных, как
правило является функцией реляционной СУБД.
14
Виды ограничений целостности
1. Целостность на уровне сущности означает, что по определенным
критериям можно однозначно выделить сущность внутри набора
сущностей. Как следует из свойств реляционных таблиц таким критерием
может являться первичный ключ. Для обеспечения целостности на уровне
сущности в первичном ключе недопустимы пустые значения, null (т. е.
полное отсутствие данных).
Пример: каждый материал имеет уникальный код
2. Целостность на уровне ссылки означает, свойство сущености одного
отношения ссылаться на существующую сущность другого отношения. Так
как связь между таблицами устанавливается с помощью внешнего ключа, то
можно сказать, что внешний ключ должен содержать значения,
совпадающие с первичным ключом другого отношения или пустые
значения.
Пример: продукт должен принадлежать к одному из типов продуктов.
3. Целостность, определяемая пользователем. Пользователь может
определить другие ограничения, которые вообще говоря могут являться
достаточно произвольными утверждениями, проявляющимися как
следствие определенных свойств объектов предметной области и/или их
взаимосвязей.
15
Этапы проектирования информационных систем
При проектировании информационных систем можно
выделить несколько этапов:
1. Концептуальное (инфологическое) проектирование построение формализованной модели предметной
области без ориентации на какую-либо конкретную
СУБД
На этом этапе могут быть разработаны следующие
виды моделей:
• функционально-ориентированные (могут быть
представлены в виде: IDEF0, IDEF3, DFD);
• объектно-ориентированные (могут быть представлены
в виде: UML-диаграмм, ER-диаграмм).
16
Пример инфологической модели
Ниже приведен пример инфологической модели части информационной системы
для отдела главного технолога (или аналогичной технологической службы)
предприятия, представленный в виде ER-диаграммы. При создании этой модели
использовано предположение, что каждый технологический процесс является
уникальным для каждого продукта, а также, что на предприятии каждый продукт
изготавливается единственным способом
Оборудование
Тип
продукта
используется
относится
Технологический
процесс
изготавливается
Продукт
используется
Материал
17
Этапы проектирования информационной системы
2.
Логическое (даталогическое) проектирование – отображение инфологической
модели на модель данных, используемую в конкретной СУБД, например на
реляционную модель данных. Для реляционных СУБД даталогическая модель –
набор таблиц, обычно с указанием ключевых полей, связей между таблицами.
Тип продукта
PK
Код типа
относится
Наименование типа
Описание
Оборудование
PK
Инвентарный номер
Наименование
Высота
Ширина
Глубина
Масса
Продукт
PK
Шифр продукта
FK1
Наименование
Класс сложности
Код типа
Технологический процесс
PK,FK1
Шифр продукта
изготавливается
Разработчик
Тип ТП
Материал в ТП
PK,FK1
PK,FK2
Оборудование в ТП
PK,FK1
PK,FK2
PK
Норма расхода
Единица измерения
Инвентарный номер
Шифр продукта
Номер операции
Время работы
Разряд работ
Шифр продукта
Шифр материала
Материал
PK
Шифр материала
Наименование материала
ГОСТ на материал
ГОСТ на сортамент
Типоразмер
18
Этапы проектирования информационной системы
3.
Физическое проектирование – реализация логической модели
средствами конкретной СУБД, а также выбор решений, связанных с
физической средой хранения данных: выбор типов данных,
определение индексов.
19
Манипуляционная часть реляционной модели
Представлена в виде языка запросов.
Запрос представляет собой специальным образом
описанное требование, определяющее состав
производимых над БД операций по выборке, удалению
или модификации хранимых данных. Для подготовки
запросов с помощью различных СУБД чаще всего
используются два основных языка описания запросов:
• язык QBE (Query By Example) — язык запросов по
образцу (пример – конструктор запросов в MS Access);
• SQL (Structured Query Language) — структурированный
язык запросов.
20
Использование оператора SELECT для поиска данных
SELECT Tech_Process.Pr_Code, Equip_in_TP.Work_time, Equipment.* FROM Equipment, Equip_in_TP,
Tech_Process WHERE Equipment.Inv_num=Equip_in_TP.Inv_num AND
Equip_in_TP.Pr_Code=Tech_Process.Pr_Code AND Tech_Process.Pr_Code LIKE ‘%пек%’ ORDER BY
Tech_Process.Pr_Code DESC, Equipment.Inv_num;
SELECT
указывает что необходимо выбрать данные из указанных столбцов и (если необходимо) выполнить
перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями
FROM
(из) перечисленных таблиц, в которых расположены эти столбцы
WHERE
(где) строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк
GROUP BY
(группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное
агрегированное значение, используя во фразе SELECT SQL-функции
HAVING
(имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп
ORDER BY
упорядочив результаты выборки по указанному перечню столбцов по возрастанию/убыванию
значений
21
Примеры поисковых запросов
Выбрать все записи из таблицы Tech_Process:
SELECT * FROM Tech_Process;
SELECT Pr_Code, developer, TP_Type FROM Tech_Process;
С помощью BETWEEN ... AND ... (находится в интервале от
... до ...) можно отобрать строки, в которых значение
какого-либо столбца находятся в заданном диапазоне:
SELECT * FROM Equipment WHERE Hight BEETWEEN 4 AND
5;
Выбрать всю информацию об оборудовании из таблицы
Equipment, высота которого находится в интервале между
4 и 5 м.
22
Примеры поисковых запросов
Для столбца текстового типа форма:
"имя_столбца LIKE текстовая_константа"
позволяет отыскать все значения указанного столбца,
соответствующие образцу, заданному
"текстовой_константой". Символы этой константы
интерпретируются следующим образом:
_ (подчеркивание) – заменяет любой одиночный символ;
% (процент) – заменяет любую последовательность из n
символов (где n может быть нулем),
все другие символы означают просто сами себя.
SELECT * FROM Product WHERE Pr_Code LIKE ’%ор%’;
Ряд СУБД допускают позволяют при поиске не делать
различий между малыми и большими буквами.
23
Download