Форум программистов, компьютерный форум, киберфорум
Наши страницы
Meridian21
Войти
Регистрация
Восстановить пароль
Рейтинг: 3.33. Голосов: 6.

Tutorial №2 - "Основные понятия и термины в БД"

Запись от Meridian21 размещена 14.06.2017 в 09:25

Disclamer: к основным понятиям реляционных БД относятся типы связей ("о-к-о", "о-к-м" и "м-к-м"), но в данном посте я не буду их касаться. Справка по данным понятиям есть в "Tutorial №1" моего блога.
---
Перечислю и разберу основные (но, конечно же, не все) понятия реляционной модели, которые пригодятся для того, чтобы правильно понимать терминологию предмета БД, уметь прочитать технический текст, где нет сопутствующих примеров (например ТЗ или условия поставленных задач, курсовых, лабораторных), чтобы корректно формулировать вопросы на форуме, а также осознавать ответы на них

1. "База данных" - это некоторая совокупность связанных друг с другом данных, которые в полной мере описывают некоторую область реального мира.
Определение, в некотором смысле, условное (не строгое). База данных - это действительно совокупность данных, которые имеют прямое отношение к некоторой части окружающего мира. У БД всегда есть описываемый объект (множество объектов), процесс (множество процессов), которые реально существуют. Например, база данных некоторой клиники. Такая БД хранит информацию об объектах (врачи, пациенты, физическое расположение и т.д.) и информацию о процессах (болезнь, лечение, выписка и т.д.).
2. "Сущность" - это реальный или представляемый объект, информация о котором должна хранится в БД. Данное понятие имеет отдаленное сходство с словом "множество". Например, в качестве реальной сущности БД может выступать абонент телефонной сети. Сущность абонент - это реальный человек, на чье имя заключен договор с оператором связи. И информация о нем (имя, фамилия, возраст и т.д.) хранится в БД. К представляемым объектам можно отнести такой объект, как "сота" если речь идет о сотой связи. Соты в реальном мире нет, т.к. это просто некоторый диапазон, который обслуживается некоторой базовой станцией. Но данный объект есть и информация о нем, также хранится в БД.
3. "Экземпляр сущности" - это в буквальном смысле экземпляр сущности, информация о которой есть в БД. Тут все просто. Сущность (множество) - учебная группа, экземпляр сущности (объект множества) - студент. Студент числится (принадлежит) какой-то конкретной ученической группе.
4. "Атрибут сущности" - проще говоря, это некоторая выраженная в чем либо характеристика сущности. Например, у сущности "автомобиль" есть атрибуты: "Цвет", "Марка", "Модель" и еще куча других. Все эти атрибуты принимают некоторые значения: "синий", "dodge", "stealth". По сути - это выраженные свойства сущности.
5. "Первичный ключ" (иногда еще "ключ сущности") - это некоторый атрибут сущности, который позволяет уникальным образом идентифицировать конкретную сущность. По сути это некоторое уникальное поле, по которому можно идентифицировать запись. Первичный ключ бывает простой (когда одно поле несет на себе функцию ПК) или составным (когда ПК состоит из 2 и более полей). Также, ключ бывает суррогатным (искусственным), т.е. таким, которого нет, как характеристики, у сущности, например patient_id, или натуральным (хароактеристика из реального мира), например VIN-номер автомобиля.
6. "Внешний ключ" - некоторый атрибут сущности, с помощью которого осуществляется связь данных (читай таблиц) в БД. При помощи механизма внешнего ключ обеспечивается так называемая ссылочная целостность, связь таблиц друг с другом. Связи бывают 3-х типов. Подробно про связи можно прочесть в моем блоге (см disclamer).
7. "Таблица", "Поле" и "Запись":
- "Таблица" - это совокупность связанных данных, хранящихся в структурированном виде в БД. Определение взялто из Вики, добавить тут и нечего. Таблица состоит из:
- "Поле" - столбец.
- "Запись" - строка.
Иначе (более подробно) говоря, запись - это целая строка из таблицы, которая состоит из набора значений полей (столбцов) таблицы. Для примера возьмем таблицу "Студент". Пусть она состоит из 4 полей (столбцов): "Student_id", "First_name", "last_name", "Group_num". Пусть есть строка, в которой есть следующие значения столбцов (полей): "1", "Иван", "Иванов", "71". Эта строка и есть запись таблицы с значением поля "Student_id" равным "1". Также можно сказать, что для записи с значением поля "Student_id" равным "1", значение поля "First_name" равно "Иван".
8. "Нормализация данных" - это процесс действий для расположения (организации) данных в БД (создание объектов БД, связей между ними, создание ограничений и т.д.) в соответствии с рядом правил, которые обеспечивают защиту данных, устраняют избыточность и несогласованность данных, а также делают БД удобной в использовании. Иначе говоря, нормализация - это приведение данных в некоторую НФ (нормальную форму) по ряду правил. Это крайне важный процесс на этапе разработки БД. Нормальных форм довольно много (9 и более). Нормализация, некоторым образом, напоминает матрешку (одна форма входит в другую). Нормализацию проводят (часто) до 3-й нормальной формы, однако на практике, пытаются найти компромисс между уровнем нормализации и реальным хранением данных. Избычтоная (в каждом случае это свой момент) нормализация, в некотором смысле, затрудняет доступ к данным.
*На данном этапе создания тутораилов я не буду подробно расписывать про нормализацию. Если будет необходимость (обратный отклик) я напишу об этом.
9. "Аномалия" - ошибка в проектировании БД. Аномалии бывают различных видов, к основным можно отнести: аномалии модификации, аномалии удаления, аномалии добавления. В целом, по названиям аномалий понятно, в каких случаях они могут возникнуть, но причиной всех видов аномалий является некорректно составленная или же плохо продуманная схема. В качестве примера можно привести следующие ситуации:
- "аномалия добавления" (insert). Предположим, необходимо внести запись о сотруднике, заполнив поля следующими данными: "231452", "Иванов", "23", "Инженер-разработчик". Поля буду следующими ("Табельный номер", "Фамилия", "Номер отдела", "Должность"). Отсутствие проверки на уникальность табельного номера, неправильный тип поля "Номер отдела" не могут гарантировать корректность данных. Таким образом, могут быть 2 сотрудника с одинаковыми табельными номерами или вместо числа в поле номера отдела может быть слово или непонятный набор символов.
- "аномалия удаления" (delete). В дефектной схеме, может возникнуть ситуация, когда при удалении появляются несвязанные записи. Например, если хранить номер группы с информацией о студенте, а потом удалить группу из таблицы с информацией о группах, то студенты будут числится в несуществующей группе.
- "аномалия модификации" (update). В данном случае, может возникнуть ошибка при отсутствии правильной связи между таблицами. Пусть есть таблица с видами товаров. И есть таблица с самими товарами. Если нет связи между таблицами, то при изменении вида товара в таблице видов товаров, часть товаров будет иметь несуществующий более вид. При правильной связи таблиц, такой ситуации можно избежать.
10. "СУБД" (или СУРБД) - средство управления (реляционными) базами данных. Определение не нуждающиеся в расшифровке. СУБД - это программный продукт, который позволяет управлять БД и данными, которые она хранит. Как пример таких ПО - Oracle, MySQL, Microsoft SQL Server, в некотором смысле PostgreSQL. Не путайте, MySQL - это не база данных. Это средство, которое поможет создать ее и управлять ей.

---
P.S. Буду рад, если данная информация кому-то будет полезной. Также буду рад замечаниям, пожеланиям, предложениям.
Размещено в БД и СУБД
Просмотров 611 Комментарии 2
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Аватар для Storm23
    Цитата:
    Как пример таких ПО - Oracle, MySQL, ...
    Цитата:
    Не путайте, MySQL - это не база данных.
    Очепятка? Или вы имеете ввиду что СУБД != БД ?
    Запись от Storm23 размещена 15.06.2017 в 09:29 Storm23 на форуме
    Обновил(-а) Storm23 15.06.2017 в 09:30
  2. Старый комментарий
    Аватар для Meridian21
    Цитата:
    Сообщение от Storm23 Просмотреть комментарий
    Очепятка? Или вы имеете ввиду что СУБД != БД ?
    Совершенно верно. Именно это, БД != СУБД, я и хочу донести. Частенько слышу "нужна база данных mysql для ресторана/больницы/завода". А когда спрашиваешь про схему (или отдаешь ее сделанную), человек делает круглые глаза и говорит, мол, а мне на mysql надо. Видимо, иногда встречается непонимание того, что есть что и что первично.
    Про различия в реализации одного и того же под разные СУБД (и про стандарты SQL) я не стал вносить в эту часть tutorial'а.
    Запись от Meridian21 размещена 15.06.2017 в 10:27 Meridian21 вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru