Добавлен: 29.11.2023
Просмотров: 458
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Отношение реляционной базы данных состоит из набора однотипных записей (кортежей). Понятие записи в базах данных аналогично понятию записи в языках программирования, то есть запись — это информационная структура, которая содержит в себе несколько переменных (полей записи) простых типов, таких как Текстовый или Символьный (String, char, nchar, varchar и т. п.) и Числовой (Integer, Real, Single, Double, float, numeric, int, smallint, tinyint, byte, long, LongInt и т. п.). То есть поле базы данных — это поле записи с определённым типом данных, который определяет диапазон и вид возможных значений (символьный или числовой) этого поля, информационный объём в битах и возможности по обработке его значения.Принципиальное отличие текстового и числового типов данных состоит в том, что:
Также существует тип данных Логический (Boolean), который может иметь значения 1 или 0, «Да/Нет», «Истина/Ложь», «Включено/Выключено» («Yes/No», «True/False», «On/Off») и служит для определения наличия или отсутствия признака (флага) какого-либо состояния.Специальный тип данных Счётчик (Identity) служит для автоматического указания значения первичного ключа для каждой записи (кортежа) таблицы (отношения) реляционной базы данных.Задача грамотного проектирования базы данных в случае использования для работы с ней СУБД, поддерживающей реляционную (состоящую из отношений, англ. relation) модель данных, состоит в том, чтобы для каждого отношения (таблицы) реляционной базы данных подобрать такой набор полей чтобы их значения описывали необходимые и достаточные свойства сущности, для которой и создана эта таблица. Типы данных этих полей необходимо подбирать таким образом, чтобы поля могли хранить значения в нужном виде и нужном диапазоне и при этом занимали минимальный объём памяти. Отдельную сложность представляет собой выбор размера текстовых полей, например ФИО, Адрес и Телефон. Общепринятыми значениями размеров этих полей являются 50, 50 и 15 байт, соответственно.Помимо этого, в каждой таблице реляционной базы данных должен быть первичный ключ (англ. PK — Primary Key). Это одно или несколько (составной первичный ключ) полей, значение которого (или общее значение которых в случае использования нескольких полей в качестве первичного составного ключа) должно отличаться от значения этого же поля (или общего значения нескольких полей, используемых в качестве первичного составного ключа) любой другой записи этой таблицы. Первичный ключ необходим для обеспечения уникальности записей в отношении и для задания связей между отношениями. Для этого в отношении, которое ссылается (связывается) на другое отношение, нужно создать дополнительное поле (или поля в случае использования составного первичного ключа), тип данных которого будет совпадать с типом данных первичного ключа родительской таблицы. И такое поле (или набор полей) называется внешний ключ (англ. FK — Foreign Key).Можно выбрать одно или несколько полей таблицы реляционной базы данных в качестве первичного ключа, но это несёт за собой ряд проблем с избыточностью информации и обеспечением целостности (правильности) вводимых и изменяемых данных, поэтому общепринятым подходом в реляционных базах данных является создание отдельного поля с названием
Код (или ID в англоязычном варианте), которое и становится первичным ключом в каждой таблице реляционной базы данных.В результате анализа предметной области базы данных автоцентра было принято решение создать отношения (таблицы) реляционной базы данных с параметрами, указанными в таблицах 2.1—2.9.При этом нужно иметь ввиду, что все первичные ключи (англ. PK — Primary Key) являются уникальными, а все внешние (англ. FK — Foreign Key) — нет.Таблица 2.1 — Логическая структура отношения «Автомобили»
Таблица 2.2 — Логическая структура отношения «Дилеры»
Таблица 2.3 — Логическая структура отношения «Клиенты»
Таблица 2.4 — Логическая структура отношения «Заказы»
Таблица 2.5 — Логическая структура отношения «Сети»
Таблица 2.6 — Логическая структура отношения «Модели»
Таблица 2.7 — Логическая структура отношения «Поставщики»
Таблица 2.9 — Логическая структура отношения «Цвета»
-
для переменной текстового типа, её значение в виде байтов кодирует при помощи каждого одного или каждого двух байтов один символ, которые и выводятся для восприятия пользователями информационной системы (ИС). А для алгоритмической обработки требует применения специальных подпрограмм (процедур и функций), предназначенных для работы с текстовыми (символьными, строковыми) данными; -
для переменной числового типа, значение которой равно определённому количеству (обычно кратному степеням числа 2 — 1, 2, 4, 8 и т. д.) байтов, её значение кодирует целое или вещественное число, которое и выводится для восприятия пользователями информационной системы (ИС). А для алгоритмической обработки требует применения специальных подпрограмм (процедур и функций), предназначенных для работы с числовыми данными.
Также существует тип данных Логический (Boolean), который может иметь значения 1 или 0, «Да/Нет», «Истина/Ложь», «Включено/Выключено» («Yes/No», «True/False», «On/Off») и служит для определения наличия или отсутствия признака (флага) какого-либо состояния.Специальный тип данных Счётчик (Identity) служит для автоматического указания значения первичного ключа для каждой записи (кортежа) таблицы (отношения) реляционной базы данных.Задача грамотного проектирования базы данных в случае использования для работы с ней СУБД, поддерживающей реляционную (состоящую из отношений, англ. relation) модель данных, состоит в том, чтобы для каждого отношения (таблицы) реляционной базы данных подобрать такой набор полей чтобы их значения описывали необходимые и достаточные свойства сущности, для которой и создана эта таблица. Типы данных этих полей необходимо подбирать таким образом, чтобы поля могли хранить значения в нужном виде и нужном диапазоне и при этом занимали минимальный объём памяти. Отдельную сложность представляет собой выбор размера текстовых полей, например ФИО, Адрес и Телефон. Общепринятыми значениями размеров этих полей являются 50, 50 и 15 байт, соответственно.Помимо этого, в каждой таблице реляционной базы данных должен быть первичный ключ (англ. PK — Primary Key). Это одно или несколько (составной первичный ключ) полей, значение которого (или общее значение которых в случае использования нескольких полей в качестве первичного составного ключа) должно отличаться от значения этого же поля (или общего значения нескольких полей, используемых в качестве первичного составного ключа) любой другой записи этой таблицы. Первичный ключ необходим для обеспечения уникальности записей в отношении и для задания связей между отношениями. Для этого в отношении, которое ссылается (связывается) на другое отношение, нужно создать дополнительное поле (или поля в случае использования составного первичного ключа), тип данных которого будет совпадать с типом данных первичного ключа родительской таблицы. И такое поле (или набор полей) называется внешний ключ (англ. FK — Foreign Key).Можно выбрать одно или несколько полей таблицы реляционной базы данных в качестве первичного ключа, но это несёт за собой ряд проблем с избыточностью информации и обеспечением целостности (правильности) вводимых и изменяемых данных, поэтому общепринятым подходом в реляционных базах данных является создание отдельного поля с названием
Код (или ID в англоязычном варианте), которое и становится первичным ключом в каждой таблице реляционной базы данных.В результате анализа предметной области базы данных автоцентра было принято решение создать отношения (таблицы) реляционной базы данных с параметрами, указанными в таблицах 2.1—2.9.При этом нужно иметь ввиду, что все первичные ключи (англ. PK — Primary Key) являются уникальными, а все внешние (англ. FK — Foreign Key) — нет.Таблица 2.1 — Логическая структура отношения «Автомобили»
| Название | Ключ | Тип | Размер | Примечание |
| Код | Да (первичный, PK) | Числовой | 8 байт | уникальный код для однозначной идентификации записей и для связи с подчинёнными/зависимыми отношениями |
| Код модели | Да (внешний, FK) | Числовой | 8 байт | внешний ключ для определения связи автомобиля с моделью |
| Мощность | Нет | Числовой | 2 байта | |
| Год | Нет | Числовой | 2 байта | |
| Цена | Нет | Денежный | 8 байт | |
| Наименование | Нет | Текстовый | MAX | |
| Название | Ключ | Тип | Размер | Примечание |
| Код | Да (первичный, PK) | Числовой | 8 байт | уникальный код для однозначной идентификации записей и для связи с подчинёнными/зависимыми отношениями |
| Код сети | Да (внешний, FK) | Числовой | 8 байт | внешний ключ для определения связи дилера с сетью |
| Наименование | Нет | Текстовый | 100 байт | |
| Адрес | Нет | Текстовый | 100 байт | |
| Телефон | Нет | Текстовый | 100 байт | |
Таблица 2.3 — Логическая структура отношения «Клиенты»
| Название | Ключ | Тип | Размер | Примечание |
| Код | Да (первичный, PK) | Числовой | 8 байт | уникальный код для однозначной идентификации записей и для связи с подчинёнными/зависимыми отношениями |
| ФИО | Нет | Текстовый | 100 байт | |
| Телефон | Нет | Текстовый | 100 байт | |
| Адрес | Нет | Текстовый | MAX | |
| Название | Ключ | Тип | Размер | Примечание |
| Код | Да (первичный, PK) | Числовой | 8 байт | уникальный код для однозначной идентификации записей и для связи с подчинёнными/зависимыми отношениями |
| Код клиента | Да (внешний, FK) | Числовой | 8 байт | внешний ключ для определения связи заказа с клиентом |
| Код автомобиля | Да (внешний, FK) | Числовой | 8 байт | внешний ключ для определения связи заказа с автомобилем |
| Код цвета | Да (внешний, FK) | Числовой | 8 байт | внешний ключ для определения связи заказа с цветом |
| Дата | Нет | Дата | 3 байта | |
| Название | Ключ | Тип | Размер | Примечание |
| Код | Да (первичный, PK) | Числовой | 8 байт | уникальный код для однозначной идентификации записей и для связи с подчинёнными/зависимыми отношениями |
| Наименование | Нет | Текстовый | 100 байт | |
| Адрес | Нет | Текстовый | 100 байт | |
| Телефон | Нет | Текстовый | 100 байт | |
Таблица 2.6 — Логическая структура отношения «Модели»
| Название | Ключ | Тип | Размер | Примечание |
| Код | Да (первичный, PK) | Числовой | 8 байт | уникальный код для однозначной идентификации записей и для связи с подчинёнными/зависимыми отношениями |
| Код марки | Да (внешний, FK) | Числовой | 8 байт | внешний ключ для определения связи модели с маркой |
| Наименование | Нет | Текстовый | 100 байт | |
| Название | Ключ | Тип | Размер | Примечание |
| Код | Да (первичный, PK) | Числовой | 8 байт | уникальный код для однозначной идентификации записей и для связи с подчинёнными/зависимыми отношениями |
| Код дилера | Да (внешний, FK) | Числовой | 8 байт | внешний ключ для определения связи поставщика с дилером |
| Код автомобиля | Да (внешний, FK) | Числовой | 8 байт | внешний ключ для определения связи поставщика с автомобилем |
| Название | Ключ | Тип | Размер | Примечание |
| Код | Да (первичный, PK) | Числовой | 8 байт | уникальный код для однозначной идентификации записей и для связи с подчинёнными/зависимыми отношениями |
| Название | Нет | Текстовый | 100 байт | |