
- •Разработка баз данных средствами MySql
- •Содержание
- •Введение
- •1. Основы работы в субд MySql
- •Системы управления базами данных
- •Основные характеристики MySql
- •Команда create database
- •Работа с таблицами
- •Синтаксис команды create table
- •Удаление таблиц
- •Синтаксис команды drop table
- •Типы данных
- •Числовые данные
- •Строковые данные
- •Календарные данные
- •Тип данных null
- •Выбор типа данных
- •1 Вариант.
- •2 Вариант.
- •3 Вариант.
- •2. Работа с таблицами. Ввод, извлечение, поиск и удаление данных Запись данных в таблицы
- •Заполните таблицу employee_data 5-10 записями. Запрос данных из таблицы MySql
- •Выборка данных с помощью условий
- •Операторы больше и меньше
- •Поиск текстовых данных по шаблону
- •Предложение group by и having
- •Удаление записей из таблицы
- •Задание 1
- •Задание 2
- •Задание 3
- •3. Логические операции в MySql
- •Операторы in и between
- •Упорядочивание данных
- •Ограничение количества извлекаемых данных
- •Извлечение подмножеств
- •Ключевое слово distinct
- •Изменение записей
- •Задание 1
- •Задание 2
- •Задание 3
- •Вычисление среднего значения
- •Именование столбцов
- •Подсчет числа записей
- •Группировка данных
- •5. Математические функции в MySql. Строковые функции. Работа с датой Математические функции MySql
- •Строковые функции
- •Ascii(строка)
- •Concat(строка1, строка2, ...)
- •Особенности типа данных Date
- •Операции с датами
- •Определение диапазонов
- •Использование Date для сортировки данных
- •Выбор данных с помощью Date
- •Текущие даты
- •Тип столбца Null
- •Задание 1
- •Задание 2
- •Задание 3
- •6. Переменные и временные таблицы. Многотабличные запросы
- •7. Вложенные запросы в MySql
- •8. Хранимые процедуры и функции
- •9. Курсоры в MySql. Представления. Конструкции управления потоком данных
- •10. Анализ и моделирование предметной области
- •1. Выбор и текстовое описание предметной области
- •2. Разработка концептуальной er-модели предметной области
- •3. Определение функциональных требований
- •11. Проектирование базы данных
- •1. Создание логической реляционной модели базы данных
- •2. Нормализация логической реляционной модели базы данных
- •1Нф (Первая Нормальная Форма)
- •2Нф (Вторая Нормальная Форма)
- •3Нф (Третья Нормальная Форма)
- •12. Проектирование физической модели бд и ее реализация
- •1. Создание физической модели базы данных
- •2. Реализация физической модели базы данных в коде
- •13. Наполнение и тестирование бд
- •1. Наполнение базы данных
- •2. Тестирование базы данных
- •14. Создание приложения к бд в среде delphi 7, с использованием AnyDac framework 1.7.0
- •1. Начало работы
- •2. Связь с таблицами
- •3. Отображение таблицы на форме
- •4. Компонент adQuery
- •5. Экспорт данных в Excel
- •6. Работа с внешними ключами
- •Рекомендуемая литература
- •Разработка баз данных средствами MySql
- •460844, Г. Оренбург, ул. Советская, 19
12. Проектирование физической модели бд и ее реализация
1. Создание физической модели базы данных
Следующим шагом после разработки логической модели является создание физической модели. Под физической моделью понимают модель, учитывающую особенности выбранной СУБД. Дело в том, что языки описания БД немного отличаются для разных СУБД, поэтому физическая модель привязана к конкретной платформе.
Чтобы приступить к реализации БД, необходимо сначала проработать все атрибуты таблиц, указав у них типы и размерность данных.
СУБД MySQL также как и другие реляционные СУБД, для создания и управления таблицами предлагает собственный диалект DML-подмножества языка SQL.
SQL расшифровывается как Structured Query Language, т.е. Язык Структурированных Запросов, а DDL как Data Definition Language, Язык Определения Данных.
Основные типы данных MySQL
В MySQL в качестве основных типов данных используются:
Код типа |
Назначение |
Примечание |
INT[(M)], INTEGER[(M)] |
Целое число нормального размера |
Диапазон со знаком от -2147483648 до 2147483647. М показывает кол-во разрядов, отводимых под число, необязательно. |
TINYINT[(M)] |
Очень малое целое число |
Диапазон со знаком от -128 до 127 |
SMALLINT[(M)] |
Малое целое число. |
Диапазон со знаком от -32768 до 32767. Диапазон без знака от 0 до 65535. |
FLOAT [(M,D)] |
Число с плавающей точкой удвоенной точности нормального размера |
Допустимые значения: от -1,7976931348623157E+308 до -2,2250738585072014E-308. Атрибут M указывает количество выводимых пользователю знаков, а атрибут D — количество разрядов, следующих за десятичной точкой. |
DATE |
Дата |
Поддерживается интервал от '1000-01-01' до '9999-12-31'. MySQL выводит значения DATE в формате 'YYYY-MM-DD', но можно установить значения в столбец DATE, используя как строки, так и числа. |
TIME |
Время |
Интервал от '-838:59:59' до '838:59:59'. MySQL выводит значения TIME в формате 'HH:MM:SS', но можно устанавливать значения в столбце TIME, используя как строки, так и числа. |
CHAR(M) |
Строка фиксированной длины. При хранении всегда дополняется пробелами в конце строки до заданного размера. |
Диапазон аргумента M составляет от 0 до 255 символов. Концевые пробелы удаляются при выводе значения. |
VARCHAR(M) |
Строка переменной длины. Концевые пробелы удаляются при сохранении значения. |
Диапазон аргумента M составляет от 0 до 255 символов. Термин VARCHAR является сокращением от CHARACTER VARYING. |
TEXT / BLOB |
Двоичный объект большого размера, который может содержать переменное количество данных. |
Столбец типа BLOB или TEXT с максимальной длиной 65535 (2^16 - 1) символов. Единственное различие между типами BLOB и TEXT состоит в том, что сортировка и сравнение данных выполняются с учетом регистра для величин BLOB и без учета регистра для величин TEXT. Другими словами, TEXT — это независимый от регистра BLOB. Если размер задаваемого в столбце BLOB или TEXT значения превосходит максимально допустимую длину столбца, то это значение соответствующим образом усекается. |
ENUM ('значение1', 'значение2',...) |
Перечисление. Перечисляемый тип данных. |
Объект строки может иметь только одно значение, выбранное из заданного списка величин 'значение1', 'значение2', ..., NULL или специальная величина ошибки "". Список ENUM может содержать максимум 65535 различных величин. |
SET ('значение1', 'значение2',...) |
Набор (множество). |
Объект строки может иметь ноль или более значений, каждое из которых должно быть выбрано из заданного списка величин 'значение1', 'значение2', ... Список SET может содержать максимум 64 элемента. |
Задавая типы и размерность данных столбцов, получим следующую модель:
Наложение ограничений целостности данных
Для обеспечения целостности данных при физическом проектировании таблиц имеет смысл накладывать определённые ограничения.
Существуют следующие виды ограничений:
Название ограничения |
Действия |
NULL / NOT NULL |
Столбец может (не может) содержать пустые значения. Показывает обязательность заполнения столбца. |
UNIQUE |
Значения столбца должны быть уникальны — столбец не должен содержать повторяющихся значений. |
DEFAULT 'value' |
Значение столбца по умолчанию. Используется, если в столбец вставляется значение NULL. |
PRIMARY KEY (...) |
Поле является первичным ключом. Эквивалентно сочетанию ограничений NOT NULL и UNIQUE. |
AUTO_INCREMENT |
Поле заполняется автоматическим счётчиком. Применяется только для полей типа INT, являющихся первичным ключом. |
FOREIGN KEY (...) REFERENCES ... ON UPDATE ... ON DELETE ...
|
Поле является внешним ключом. В первых скобках указывается имя поля, являющегося ключом, после слова REFERENCES — название таблицы и поля в скобках, на которое ссылается данное. С помощью опций ON UPDATE / ON DELETE можно задавать правила поведения, при изменении или удалении родительской таблицы: ● NO ACTION — не производить никаких действий; ● SET NULL — заполнить пустым значением; ● SET DEFAULT — заполнить значением по умолчанию; ● RESTRICT — запретить операции над родительским значением; ● CASCADE — произвести каскадное обновление зависимых значений. |
CHECK (expr) |
Значение поля должно удовлетворять логическому условию expr. |
Не следует забывать, что необходимо добавить внешние ключи (FOREIGN KEY) в соответствующие таблицы и связать их с первичнами ключами родительских сущностей!!!
Задание: Создайте физическую модель БД из логической модели, дополнив её типами данных и указав ограничения. Постройте и сохраните диаграмму БД. |