Browse Source

словарь данных

Евгений Колесников 4 năm trước cách đây
mục cha
commit
da5c5e80c0

+ 64 - 0
articles/5_1_1_1_data_dictionary.md

@@ -0,0 +1,64 @@
+[содержание](/readme.md)
+
+# Словарь данных
+
+Недостатком ER-диаграмм является их недостаточная детализация данных, поэтому они часто дополняются более подробным описанием, которые собираются в словари данных.
+
+>**Словарь данных** представляет собой определенным образом организованный список всех элементов данных системы с их точными определениями, что дает возможность различным категориям пользователей (от системного аналитика до программиста) иметь общее понимание всех входных и выходных потоков и компонентов хранилищ...
+
+*Словарь данных* содержит описание сущностей (таблиц), включающее в себя определение атрибутов, а также дополнительные сведения, например, единицы измерения и диапазоны изменения атрибутов, цель определения такого объекта, сведения о его разработчике и времени создания и т.д.
+
+В каталоге `docs` этого репозитория лежит [шаблон](../docs/DataDictionary_Template.xlsx) словаря данных.
+
+Возьмем описание предметной области одного из предыдущих демо-экзаменов и заполним словарь данных:
+
+>**Подсистема работы с клиентами**
+>
+>Подсистема работы с клиентами включает в себя возможность добавления новых клиентов, отслеживание их посещений, а также контроль их бонусной программы.
+>
+>Запись о клиенте содержит следующие данные: фамилию, имя, отчество, дату рождения, телефон, электронную почту, пол, дату первого посещения (регистрации), фотографию клиента. В связи с тем что у компании большое количество клиентов, то их удобно собирать с помощью определенных ярлыков (тегов), которые позволят очень удобно помечать клиентов (например, новый, постоянный, проблемный, горячий). Теги помимо названия должны иметь еще и определенный цвет.
+>
+>Посещения клиента в рамках оказания услуг должны обязательно фиксироваться в БД.
+
+Для начала, размеремся какие параметры заносятся в *словарь данных*
+
+* **Key** - признак, что поле является ключём. Для разных типов ключей приняты определенные обозначения:
+
+    * **PK** - первичный ключ (primary key)
+    * **FK** - внешний ключ (foreign key)
+    * **IDX** - индекс (альтернативный ключ)
+
+    >Не нашёл как описывать составные ключи
+
+* **Field Name** - название атрибута (латиницей). Ещё раз напоминаю, что мы везде используем **CamelCase**
+
+* **Data Type/Field Size** - тип данных / размерность поля
+
+* **Required?** - вписывается "Y", если поле обязательное (для не обязательных ничего не пишем)
+
+* **Notes** - примечание. Заполняется, если назначение поля не самоочевидно из названия или для поля есть *домен* 
+
+Пример заполнения элемента *словаря данных*
+
+**Во-первых**, Выделим из описания предметной области сущности:
+
+* **Клиент**
+* **Пол клиента**
+* **Теги клиента**
+* **Посещения клиента**
+
+Заполним элемент *словаря данных* на примере таблицы **Клиент**
+
+Key | Field Name | Data Type/Field Size | Required? | Notes | Мои примечания 
+:-:|----|-----|:-:|---|---
+PK | Id | INT | Y |   | Синтетический первичный ключ, тип всегда INT (целое)
+ | LastName | varchar(30) | Y | | Фамилия (строка), обязательное поле
+ | FirstName | varchar(30) | Y | | Имя (строка), обязательное поле
+ | MiddleName | varchar(30) | | | Отчество (строка), НЕ обязательное поле
+ | BirthDay | DATE | Y | | Дата рождения 
+ | Phone | varchar(20) | Y | | Телефон (тут тип данных может быть INT)
+ | EMail | varchar(20) | Y | | Электронная почта
+FK | GenderId | INT | Y | | Ссылка на словарь **Gender**
+ | FirstVisit | DATE | | | Дата первого посещения (регистрации). В принципе эту дату можно достать из таблицы "Посещения клиента"
+ | Photo | BLOB | | | Фотографию клиента можно хранить в базе, но можно и в каком-либо каталоге на сервере
+FK | TagId | INT | | | Ссылка на словарь **Теги клиента**. Причем тут опять же в зависимости от ТЗ может понадобиться промежуточная таблица, если у клиента может быть несколько тегов

+ 14 - 2
articles/5_1_1_1_erd2.md

@@ -243,9 +243,14 @@ Management Studio, Oracle SQL Developer и им подобные — это не
 
     Процесс нормализации впервые был предложен Э.Ф. Коддом в 1972 г. Сначала было предложено три вида нормальных форм (1NF, 2NF и 3NF). Затем Р. Бойсом и Э.Ф. Коддом (1974 г.) было сформулировано более строгое определение третьей нормальной формы, которое получило название нормальная форма Бойса–Кодда (BCNF). Вслед за BCNF появились определения четвертой (4NF) и пятой (5NF или PJNF) нормальных форм (Р. Фагин, 1977 и 1979 г.). На практике нормальные формы более высоких порядков используются крайне редко. При проектировании БД, как правило, ограничиваются третьей нормальной формой, что позволяет предотвратить возможное возникновение избыточности данных и аномалии обновлений.
 
-    **1NF**. Отношение находится в 1NF, если на пересечении каждого столбца и строки находятся только элементарные (атомарные, неделимые) значения атрибутов.
+    <!-- 
+    https://habr.com/ru/post/129195/ 
+    https://info-comp.ru/database-normalization
+    -->
 
-    Степень неделимости (атомарности), т. е. решение о том, следует разбивать неатомарный атрибут на атомарные или оставить его псевдоатомарным, определяется проектировщиком БД исходя из конкретных условий. Если при обработке таблиц нет необходимости различать атомарные составляющие псевдоатомарного атрибута, то его можно не делить (например, атрибуты «Фамилия, имя, отчество», «Адрес» и т. д.).
+    **1НФ**. Отношение находится в первой нормальной форме (сокращённо 1НФ), если все его атрибуты атомарны, то есть если ни один из его атрибутов нельзя разделить на более простые атрибуты, которые соответствуют каким-то другим свойствам описываемой сущности.
+
+    Степень неделимости (атомарности), т.е. решение о том, следует разбивать неатомарный атрибут на атомарные или оставить его псевдоатомарным, определяется проектировщиком БД исходя из конкретных условий. Если при обработке таблиц нет необходимости различать атомарные составляющие псевдоатомарного атрибута, то его можно не делить (например, атрибуты «Фамилия, имя, отчество», «Адрес» и т. д.).
 
     **2NF**. Отношение находится во 2NF, если оно находится в 1NF, и каждый неключевой атрибут характеризуется полной функциональной зависимостью от первичного ключа.
 
@@ -397,3 +402,10 @@ Management Studio, Oracle SQL Developer и им подобные — это не
     Первоначальный физический проект БД не следует понимать как нечто статическое. Он, скорее, является промежуточным звеном, предназначенным для оценки достигнутого уровня производительности системы. Большинство коммерческих СУБД предоставляет в распоряжение администратора БД набор утилит, предназначенных для наблюдения за функционированием системы и ее настройки.
 
     На практике настройку БД никогда нельзя считать завершенной. На протяжении всего жизненного цикла системы необходимо постоянно вести наблюдение за уровнем ее производительности, что позволит своевременно реагировать на изменения, происходящие в окружающей среде. Внесение в БД изменений, предназначенных для повышения производительности одного из приложений, может отрицательно отразиться на работе другого приложения, возможно, более важного. Таким образом, внесение любых изменений в БД должно проводиться обдумано и осторожно с обязательным их тестированием.
+
+---
+
+**Дополнительная литература**
+
+1. [Нормализация баз данных простыми словами](https://info-comp.ru/database-normalization)
+2. [Нормализация базы данных и ее формы](https://office-menu.ru/uroki-sql/51-normalizatsiya-bazy-dannykh)

+ 0 - 28
articles/5_1_1_1_intro2.md

@@ -18,34 +18,6 @@
 
 Информатизация общества немыслима без использования информационных систем и информационно-телекоммуникационных сетей.
 
-Согласно Федеральному закону «Об информации, информационных технологиях и о защите информации» [2] информация (лат. informatio – разъяснение, изложение) – сведения (сообщения, данные) независимо от формы их представления. В литературе, посвященной компьютерной технике и программным средствам, часто употребляется термин «данные». Как правило, эти понятия взаимозаменяемы.
-
-В то же время необходимо отметить одно принципиальное отличие между ними. Данные – это информация, представленная в виде, пригодном для обработки автоматическими средствами [1].
-
-На протяжении последних десятилетий наблюдается неизменное ускорение темпов роста объема информации. Кратко и емко данная ситуация была сформулирована в виде тезиса: «Информация — это единственный неубывающий ресурс общества». Объем информации к 1800 г. удваивался каждые 50 лет, к 1950 г. – каждые 10 лет, к 1970 г. – каждые 5 лет, а к 1990 г. – ежегодно. Следствием такого положения дел стал количественный барьер в процессах обработки информации. Иногда информацию нет смысла собирать и хранить в связи с отсутствием возможности ее обработки и рационального использования. Увеличение информации и растущий спрос на нее обусловили появление отрасли, связанной с автоматизацией обработки информации – информатикой.
-
-Информатика (фр. Information – информация и фр. automatioque – автоматика) – область научно-технической деятельности, занимающаяся исследованием процессов получения, передачи, обработки, хранения и представления информации, а также решением проблем создания, внедрения и использования информационной техники и технологии во всех сферах общественной жизни. Аналог термина «информатика» в англоязычных странах и большинстве стран Западной Европы – «computer science» («вычислительная наука»).
-
-Основным направлением и предметом информатики является изучение и разработка информационных технологий на основе использования вычислительной техники. Информационные технологии – процессы и методы поиска, сбора, хранения, обработки, предоставления, распространения информации, а также способы осуществления таких процессов и методов [2]. В настоящее время понятие «информационная технология» неразрывно связывают с использованием электронных средств передачи и обработки информации. В этом случае правильнее использовать термин «новая информационная технология», так как информационные технологии существовали и до появления компьютеров [1].
-
-Новые информационные технологии призваны обеспечить повсеместную информатизацию всех сфер человеческой деятельности. В старой редакции закона [2] информатизация определялась как «организационный социально-экономический и научно-технический процесс создания оптимальных условий для удовлетворения информационных потребностей и реализации прав граждан, органов государственной власти, органов местного самоуправления, организаций, общественных объединений на основе формирования и использования информационных ресурсов».
-
-Информатизация общества немыслима без использования информационных систем и информационно-телекоммуникационных сетей.
-
-Информационная система (автоматизированная информационная система) – совокупность содержащейся в базах данных информации и обеспечивающих ее обработку информационных технологий и технических средств [2]. Это определение упрощенно можно представить следующей формулой.Согласно Федеральному закону «Об информации, информационных технологиях и о защите информации» [2] информация (лат. informatio – разъяснение, изложение) – сведения (сообщения, данные) независимо от формы их представления. В литературе, посвященной компьютерной технике и программным средствам, часто употребляется термин «данные». Как правило, эти понятия взаимозаменяемы.
-
-В то же время необходимо отметить одно принципиальное отличие между ними. Данные – это информация, представленная в виде, пригодном для обработки автоматическими средствами [1].
-
-На протяжении последних десятилетий наблюдается неизменное ускорение темпов роста объема информации. Кратко и емко данная ситуация была сформулирована в виде тезиса: «Информация — это единственный неубывающий ресурс общества». Объем информации к 1800 г. удваивался каждые 50 лет, к 1950 г. – каждые 10 лет, к 1970 г. – каждые 5 лет, а к 1990 г. – ежегодно. Следствием такого положения дел стал количественный барьер в процессах обработки информации. Иногда информацию нет смысла собирать и хранить в связи с отсутствием возможности ее обработки и рационального использования. Увеличение информации и растущий спрос на нее обусловили появление отрасли, связанной с автоматизацией обработки информации – информатикой.
-
-Информатика (фр. Information – информация и фр. automatioque – автоматика) – область научно-технической деятельности, занимающаяся исследованием процессов получения, передачи, обработки, хранения и представления информации, а также решением проблем создания, внедрения и использования информационной техники и технологии во всех сферах общественной жизни. Аналог термина «информатика» в англоязычных странах и большинстве стран Западной Европы – «computer science» («вычислительная наука»).
-
-Основным направлением и предметом информатики является изучение и разработка информационных технологий на основе использования вычислительной техники. Информационные технологии – процессы и методы поиска, сбора, хранения, обработки, предоставления, распространения информации, а также способы осуществления таких процессов и методов [2]. В настоящее время понятие «информационная технология» неразрывно связывают с использованием электронных средств передачи и обработки информации. В этом случае правильнее использовать термин «новая информационная технология», так как информационные технологии существовали и до появления компьютеров [1].
-
-Новые информационные технологии призваны обеспечить повсеместную информатизацию всех сфер человеческой деятельности. В старой редакции закона [2] информатизация определялась как «организационный социально-экономический и научно-технический процесс создания оптимальных условий для удовлетворения информационных потребностей и реализации прав граждан, органов государственной власти, органов местного самоуправления, организаций, общественных объединений на основе формирования и использования информационных ресурсов».
-
-Информатизация общества немыслима без использования информационных систем и информационно-телекоммуникационных сетей.
-
 **Информационная система** (автоматизированная информационная система) – совокупность содержащейся в базах данных информации и обеспечивающих ее обработку информационных технологий и технических средств. Это определение упрощенно можно представить следующей формулой. (автоматизированная информационная система) – совокупность содержащейся в базах данных информации и обеспечивающих ее обработку информационных технологий и технических средств. Это определение упрощенно можно представить следующей формулой.
 
 ![](../img/01010.png)

+ 4 - 0
articles/kp2.md

@@ -91,6 +91,10 @@
     - список книг
     - онлайн заказы    
 
+19. Студия маникюра (Иванова)
+
+20. Велотовары (Попов)
+
 ## Важно!!!
 
 USE-case и ER диаграммы рисуются для всей предметной области. 

+ 1 - 0
docs/.~lock.DataDictionary_Template.xlsx#

@@ -0,0 +1 @@
+,kei,Yoga,03.09.2021 17:44,file:///home/kei/.config/libreoffice/4;

BIN
docs/DataDictionary_Template.xlsx


+ 16 - 1
readme.md

@@ -81,9 +81,24 @@ http://sergeyteplyakov.blogspot.com/2014/01/microsoft-fakes-state-verification.h
 
 2. [Основы проектирования баз данных.](articles/5_1_1_1_erd2.md)
 
-3. [Создание ER-диаграммы в среде MySQL Workbench](articles/5_1_1_1_erd_workbench.md)
+3. [Словарь данных](articles/5_1_1_1_data_dictionary.md)
+
+4. [Создание ER-диаграммы в среде MySQL Workbench](articles/5_1_1_1_erd_workbench.md)
+
+
+### Контрольные вопросы
+
+* Что такое **домен**?
+* Что входит в классическую ER-диаграмму?
+* Какие виды **ключей** Вы знаете?
+* Что такое **данные**?
+* Что такое **информационная система**?
+* Назовите этапы проектирования БД.
 
 <!--
+
+https://office-menu.ru/uroki-sql Уроки SQL
+
 2. [Жизненный цикл информационных систем.](articles/5_1_1_2_lifecycle.md)
 
 [4+0 => 8+0]: _