Технология моделирования данных Д.А.Россиев
Что такое моделирование данных? Создание виртуального представления, «слепка» части реального мира на основе компьютерных баз данных для последующей работы Информационной системы.
Моделирование данных Логический процесс Творческий процесс Итеративный процесс
Термин: ПРЕДМЕТНАЯ ОБЛАСТЬ Часть реального мира (реальные или воображаемые объекты, явления, процессы, а также связи между ними), выделяемая нами для виртуального представления Предметная область -> База данных
Что такое База данных? Модель предметной области - электронное хранилище данных, организованных во взаимосвязанные таблицы
Таблица базы данных Поля Записи
Два основных закона БД Все данные в базе хранятся в таблицах и нигде больше. Доступ к любому значению (ячейке) однозначно осуществляется по цепочке: Таблица -> Запись (строка) -> Поле (столбец) Таблица: staff Запись: 267 Поле: surname Россиев
Шаг 1. Описание предметной области Литературный текст, включающий: Название предметной области Перечисление основных объектов, явлений, процессов, которые впоследствии будут отображаться в модели Основные цели и задачи модели
Пример описания Справочник лекарственных средств, совмещенный с международным классификатором болезней, позволяющий быстро находить лекарства, показанные и противопоказанные при данном заболевании. Включает также перечень фармпроизводителей.
Термин: СУЩНОСТЬ Реальный либо воображаемый объект (явление, процесс) предметной области, информация о котором подлежит хранению Примеры Аспирин Berlin Chemy Нестабильная стенокардия
Термин: КЛАСС Совокупность сущностей, рассматриваемых как однородные, т.е имеющие одинаковый набор свойств, характеристик, параметров. Примеры: Лекарственное средство Нозологическая единица Фармпроизводитель Класс -> Одна таблица базы данных
Шаг 2. Составление списка классов 1.Лекарственное средство 2.Нозологическая единица 3.Фармпроизводитель Количество классов: Локальные ИС - до 10 Небольшие рабочие ИС – Мощные ИС организаций и отраслей – до нескольких сотен
Шаг 3. Разработка описаний каждого класса Описание класса включает: Имя класса (латинскими символами) Русский эквивалент или перевод имени Аннотацию – литературный текст, кратко характеризующий класс в целом и важные сведения о нем. Частопополняемый, Редкопополняемый, Фиксированный Примерное количество сущностей в классе (объем) Четкий список свойств (параметров, характеристик), которые имеют сущности этого класса Указание ключевых свойств
Классификация классов по пополняемости КлассКто пополняет Интерфейс для пополнения Частопопол- няемый ПользователиНеобходим Редкопопол- няемый Админист- ратор Как правило, не нужен Фиксиро- ванный НиктоНет
Термин: СВОЙСТВО Параметр, целостная и неделимая характеристика, применимая к каждой сущности данного класса Для каждого свойства задается: Уникальное имя в пределах описания класса (а желательно – всей предметной области) (латинскими символами) Русский эквивалент или перевод имени Тип данных [Возможность пустых значений NULL] [Значение по умолчанию DEFAULT] [Диапазон или перечень возможных значений] Комментарий
Каждый класс, также как и каждая его сущность, имеет как минимум одно, а обычно – несколько свойств Лекарственное средство: Название Форма выпуска Фармпроизводитель
Правила определения имен классов и свойств 1.Латинская символика 2.Строчные (маленькие) буквы, цифры, знак подчеркивания. Другие символы недопустимы! 3.Пробелы заменяются на _ 4.Первый символ не должен быть цифрой 5.Длина имени не более 25 символов 6.Мнемоническое содержание nissan_shift_expectations
Основные типы данных Строка (указание максимальной длины: символов) Число Счетчик-идентификатор (автоинкремент) Целое число Дробное (с плавающей точкой) число Логика (0/1, Нет/Да) Целое перечислимое (перечень значений, первому значению соответствует 0, второму – 1 и т.д.) Целое - внешний ключ Временной Дата и время Дата Время Период Объект Текст Изображение Другое
Пример 1 описания свойства для класса «Лекарственное средство») Имяprep_id Русс.Идентификатор ТипСчетчик Длина- Пустые значения- Значение по умолчанию-
Пример 2 описания свойства для класса «Лекарственное средство») Имяprep_name Русс.Название ТипСтрока Длина255 Пустые значенияЗапрещены Значение по умолчаниюНет
Пример 3 описания свойства для класса «Лекарственное средство») Имяprep_price Русс.Цена ТипДробное число Длина- Пустые значенияДа Значение по умолчанию0
Пример 4 описания свойства для класса «Лекарственное средство») Имяprep_сategory Русс.Категория ТипПеречислимое (без рецепта; по рецепту; особо опасное) Длина- Пустые значенияНет Значение по умолчанию 0
Пример 5 описания свойства для класса «Лекарственное средство») Имяfarm_id Русс.Производитель ТипВнешний ключ Длина- Пустые значения- Значение по умолчанию-
Все описания свойств одного класса размещаются в одной отдельной таблице Имя Тип………… 1prep_id 2prep_name 3prep_category 4prep_price 5farm_id
Термин: КЛЮЧ Одно или несколько свойств класса, по значениям которым однозначно определяется любая сущность данного класса Простой ключ – одно свойство Составной ключ – 2 и более свойств
Пример простого ключа prep_idprep_nameprep_category 1Аспирин0 2Виагра0 3Но-шпа0 Ключ
Шаг 4. Разработка описаний связей между классами Классификация связей: 1.Многие к одному (внешний ключ) 2.Один ко многим 3.Один к одному 4.Многие ко многим
Связь -1 prep_idprep_namefarm_id 1Аспирин1 2Виагра1 3Но-шпа3 farm_idfarm_name 1Pfizer 2Berlin Chemy 3Sanofy Внешний ключ Главная таблица Таблица-справочник МНОГИЕ к ОДНОМУ
Связь 1- prep_idprep_namefarm_id 1Аспирин1 2Виагра1 3Но-шпа2 farm_idfarm_name 1Pfizer 2Berlin Chemy 3Sanofy Внешний ключ Главная таблица Подчиненная таблица ОДИН ко МНОГИМ
Связь 1-1 prep_idprep_photo 1 2 prep_idprep_name 1Аспирин 2Виагра 3Но-шпа Ключ Главная таблицаДополнительная таблица ОДИН к ОДНОМУ
Связь - prep_idprep_name 1Аспирин 2Виагра 3Но-шпа farm_idfarm_name 1Pfizer 2 Berlin Chemy 3Sanofy Левая таблица Правая таблица prep_idfarm_id Связочная таблица МНОГИЕ ко МНОГИМ
Какой вид связей вы выберите (1- или -) ? Сотрудник – Подразделение Город – Область Врач – пациент Марка автомобиля – Фирма- производитель Марка автомобиля – Автозавод Студент – Группа Человек - Квартира
НЕПРОСТОЙ ВЫБОР при хранении коротких текстовых данных Значения повторяются? Нет или редко Да, часто Набор значений фиксирован? НетДаНет Количество возможных значений? Велико2-15Любое Нужна статистика по свойству? НетДа СТРОКАНОМИНАЛЬНЫЙ ВНЕШНИЙ КЛЮЧ