Литмир - Электронная Библиотека
A
A

Валерий Альмухаметов

Разработка и проектирование СУБД

Этапы и шаги проектирования

Процесс проектирования любой базы данных условно можно разделить на пять этапов:

анализ – определение круга задач и построение диаграмм, отображающих логические взаимосвязи в разрабатываемой системе;

проектирование – фактическая реализация таблиц и связей между ними на основании логических диаграмм;

разработка функциональности – создание подпрограмм и программ, реализующих процедуры обработки данных в соответствии с постановкой задачи; на этом этапе формируются связи между самой БД и обрабатывающим ее приложением;

тестирование – проверка корректности взаимодействия программной части и базы данных;

доработка – совершенствование БД и программной части с целью устранения недостатков, обнаруженных на этапе тестирования.

На этапе анализа необходимо:

идентифицировать сущности, которые осуществляют функциональную деятельность, и формирование из их операций последовательности событий, которые помогут идентифицировать все сущности (сущность – объект материального мира: работник, продукт…) и взаимосвязи между ними;

идентифицировать характеристики сущностей. Например, сущность «Работник» может включать такие характеристики как «Профессия», «Зарплата»;

идентифицировать взаимосвязи между сущностями (Например, «Работник» получает «Зарплату» …).

На этапе проектирования:

устанавливаются соответствия между сущностями и характеристиками и между отношениями и атрибутами. Составляется набор отношений (таблиц для сущностей) и их атрибутов (полей таблиц – свойств сущностей, например, работник имеет фамилию, должность …);

определяются атрибуты, которые уникальным образом идентифицируют каждую сущность (например, табельный номер работника);

задаются первичные ключи (поля с неповторяющимися значениями) для каждого из отношений, простые или составные (например, составной ключ по полям имя, отчество и фамилия);

вырабатываются правила, которые будут устанавливать и поддерживать целостность данных (типы данных, например, текстовый, числовой тип …, значения по умолчанию, например, равно 100, ограничения, например, не более, не менее);

выполняется нормализация данных. Каждой нормальной форме соответствует некоторый набор ограничений. В таблице, соответствующей первой нормальной форме, каждое поле должно содержать только один элемент данных, например, адресу соответствует сразу три поля: город, улица и дом. Во второй нормальной форме каждый вне ключевой атрибут должен полностью зависеть от первичного ключа, например, если в таблице определить составной первичный ключ по фамилии и имени, то есть вероятность существования двух сотрудников с одинаковой фамилией и будет связь с частью первичного ключа. Отношение находится в третьей нормальной форме в том случае, если каждый вне ключевой атрибут полностью зависит от первичного ключа. Для четвертой нормальной формы, между столбцами таблицы не допускается многозначная зависимость. Например, некоторый сотрудник может занимать сразу две должности, необходимо будет создать промежуточную таблицу.

Пример СХЕМЫ ДАННЫХ СУБД:

Разработка и проектирование СУБД - _0.jpg

Разработка СУБД с использованием языка SQL

При описании реляционной модели в SQL вместо терминов: отношение, атрибут, кортеж используется терминология: соответственно – таблица, столбец, строка.

Типы данных SQL

Символьные типы данных – содержат буквы, цифры и специальные символы.

CHAR или CHAR(n) -символьные строки фиксированной длины. Длина строки определяется параметром n. CHAR без параметра соответствует CHAR(1).

VARCHAR(n) – символьная строка переменной длины.

Целые типы данных – поддерживают целые числа. Над этими типами разрешается выполнять арифметические операции и применять к ним функции (определение максимального, минимального, среднего и суммарного значения столбца).

INTEGER или INT- целое, для хранения которого отводится, как правило, 4 байта. Интервал значений от – 2147483647 до + 2147483648

SMALLINT – короткое целое (2 байта), интервал значений от – 32767 до +32768

Вещественные типы данных – числа с дробной частью.

FLOAT и SMALLFLOAT – числа с плавающей точкой.

DECIMAL(p) – тип данных аналогичный FLOAT с числом значащих цифр p.

Денежные типы данных – денежные величины.

MONEY(p,n) – все аналогично типу DECIMAL(p).

Дата и время – используются для хранения даты, времени и их комбинаций. Большинство СУБД умеет определять интервал между двумя датами, а также уменьшать или увеличивать дату на определенное количество времени.

DATE – тип данных для хранения даты.

TIME – тип данных для хранения времени.

INTERVAL – тип для хранения интервала времени.

DATETIME – тип данных для хранения времени (год + месяц + день + часы + минуты + секунды + доли секунд).

Двоичные типы данных – позволяют хранить данные любого объема в двоичном коде (изображения, файлы и т.д.).

BINARY             BYTE             BLOB

Последовательные типы данных – используются для представления возрастающих числовых последовательностей.

SERIAL – тип данных на основе INTEGER, позволяющий сформировать уникальное значение.

СУБД «ПРЕДПРИЯТИЕ»

Создать на рабочем диске, например, D: папку, например, с именем Otdel, которая будет содержать файлы базы данных. Используя окно команд СУБД печатать программный код, представленный ниже. Если оператор переносится частично в следующую строку, то необходимо добавлять точку с запятой.

1.Создание базы данных и таблиц

Создание CREATE и удаление DROP.

Например:

CREATE DATABASE ‘d:\otdel\otdel’

CREATE TABLE d:\otdel\tem (id_tem INT PRIMARY KEY,;

nazv CHAR(10) NOT NULL)

CREATE TABLE d:\otdel\sot (id_sot INT PRIMARY KEY,;

dol CHAR(15) NOT NULL, okl CURRENCY, id_tem INT)

CREATE TABLE d:\otdel\dog (suma CURRENCY NOT NULL,;

Dat_b DATE, Dat_e DATE, id_tem INT,;

FOREIGN KEY id_tem TAG id_tem REFERENCES tem)

Первичный ключ таблицы TEM Id_tem, является вторичным таблицы DOG. В таблице SOT первичным является Id_sot.

Так как мы не соединили таблицу SOT по полю Id_tem с таблицей TEM, то, для примера удалим ее и создадим вновь, полю Id_sot присвоим вместо первичного ключ уникальный.

DROP TABLE sot 'd:\otdel' RECYCLE

CREATE TABLE d:\otdel\sot (id_sot INT UNIQUE NOT NULL,;

dol CHAR(15) NOT NULL, okl CURRENCY, id_tem INT,;

FOREIGN KEY id_tem TAG id_tem REFERENCES tem)

Элементы столбца NOT NULL должны иметь не пустое значение. UNIQUE – значение каждого элемента должно быть уникальным. PRIMARY KEY – является первичным ключом. REFERNECES столбец является внешним ключом и указывает на ключ какой таблицы он ссылается.

2.Заполнение таблиц базы данных

Для того чтобы добавить столбец в таблицу, используется оператор ALTER с добавкой ADD:

ALTER TABLE d:\otdel\tem ADD COLUMN kod INT NOT NULL

Чтобы удалить столбец из таблицы, используется оператор ALTER с добавкой DROP:

ALTER TABLE d:\otdel\tem DROP COLUMN kod

Добавим в созданные таблицы записи.

Заполнить данными таблицу Sot:

INSERT INTO d:\otdel\tem (id_tem, nazv) VALUES (1, "Proekt1")

INSERT INTO d:\otdel\tem (id_tem, nazv) VALUES (2, "Proekt2")

INSERT INTO d:\otdel\sot (id_sot,dol,okl,id_tem);

1
{"b":"744509","o":1}