- •Лабораторная работа №9
- •9.4. Разработка пользовательского приложения на примере задачи производства и реализации продукции
- •9.4.1. Постановка задачи
- •9.4.2. Выбор программного обеспечения для реализации проекта
- •9.4.3. Разработка базы данных
- •9.4.3.1. Описание модели данных
- •9.4.3.2. Создание логической модели данных
- •9.4.3.3. Переход к физической модели данных
- •9.4.3.4. Генерация скрипта бд
- •9.4.4. Генерация базы данных на сервер
- •9.4.4.1. Создание бд путем разработки php-программ
- •1. Создание базы данных
- •2. Установка соединения, создание таблиц и связей
- •3. Проверка правильности создания бд
- •4. Заполнение таблиц данными
- •9.4.4.2. Создание бд c помощью модуля phpMyAdmin
- •9.4.4.3. Реализация бизнес-функций с помощью запросов
9.4.3.2. Создание логической модели данных
После того, как все сущности созданы (рис. 5), необходимо установить связи между ними, продумывая тип связи. Например, между сущностью Predprijatie и Sirjo устанавливаем неидентифицирующую связь, так как код предприятия не должен входить в область первичных ключей сущности Sirjo. Kod_sr полностью идентифицирует запись о сырье.
Между сущностью Izdelie и Rasxod устанавливаем идентифицирующую связь, так как Kod_izd является частью составного первичного ключа сущности Rasxod.
Рис. 5. Сущности БД
Законченная логическая схема БД со всеми установленными связями приведена на рис. 6.
Рис. 6. Логическая модель БД
9.4.3.3. Переход к физической модели данных
9.4.3.4. Генерация скрипта бд
Скрипт создания базы данных для MySQL. Текст скрипта приведен ниже.
--
--ER/Studio 6.0 SQL Code Generation
-- Company : HOME
-- Project : Model1.DM1
-- Author : Olga
--
-- Date Created : Thursday, January 17, 2008 23:37:11
-- Target DBMS : MySQL 4.x
--
--
-- TABLE: Izdelie
--
CREATE TABLE Izdelie(
Kod_izd CHAR(3) NOT NULL,
Name_izd CHAR(15),
Stoimost_izd FLOAT,
PRIMARY KEY (Kod_izd)
)
;
--
-- TABLE: Predprijatie
--
CREATE TABLE Predprijatie(
Kod_pr CHAR(3) NOT NULL,
BankSchet CHAR(10),
Adres CHAR(30),
Name_pr CHAR(25),
PRIMARY KEY (Kod_pr)
)
;
--
-- TABLE: Rasxod
--
CREATE TABLE Rasxod(
Kod_sr CHAR(3) NOT NULL,
Kod_izd CHAR(3) NOT NULL,
Kol FLOAT,
PRIMARY KEY (Kod_sr, Kod_izd)
)
;
--
-- TABLE: Realizacija
--
CREATE TABLE Realizacija(
Nom_nakl INT NOT NULL,
Data_real DATE,
Kol FLOAT,
Kod_pr CHAR(3) NOT NULL,
Kod_izd CHAR(3) NOT NULL,
PRIMARY KEY (Nom_nakl)
)
;
--
-- TABLE: Sirjo
--
CREATE TABLE Sirjo(
Kod_sr CHAR(3) NOT NULL,
Name_sr CHAR(15),
Stoimost_edinici FLOAT,
Kod_pr CHAR(3) NOT NULL,
PRIMARY KEY (Kod_sr)
)
;
--
-- TABLE: Rasxod
--
ALTER TABLE Rasxod ADD CONSTRAINT RefSirjo3
FOREIGN KEY (Kod_sr)
REFERENCES Sirjo(Kod_sr)
;
ALTER TABLE Rasxod ADD CONSTRAINT RefIzdelie4
FOREIGN KEY (Kod_izd)
REFERENCES Izdelie(Kod_izd)
;
--
-- TABLE: Realizacija
--
ALTER TABLE Realizacija ADD CONSTRAINT RefPredprijatie5
FOREIGN KEY (Kod_pr)
REFERENCES Predprijatie(Kod_pr)
;
ALTER TABLE Realizacija ADD CONSTRAINT RefIzdelie6
FOREIGN KEY (Kod_izd)
REFERENCES Izdelie(Kod_izd)
;
--
-- TABLE: Sirjo
--
ALTER TABLE Sirjo ADD CONSTRAINT RefPredprijatie1
FOREIGN KEY (Kod_pr)
REFERENCES Predprijatie(Kod_pr)
;
9.4.4. Генерация базы данных на сервер
9.4.4.1. Создание бд путем разработки php-программ
1. Создание базы данных
Рассмотрим способ генерации БД на сервер MySQL с помощью PHP-программ, запускаемых на локальном сервере.
Прежде чем приступить к написанию PHP-скриптов, необходимо создать свою папку на локальном сервере, куда будут помещаться все скрипты. Папку необходимо разместить на диске, где установлен Денвер (допустим, диск Z) по такому пути: Z:\home\localhost\www. Таким образом, в директории «www» необходимо создать папку со своей фамилией (на английском языке). Пример создания директории для проекта приведен на рис. 14.
Рис. 14. Создание собственной директории для проекта
После создания директории для проекта можно приступать к созданию PHP-скриптов проекта.
Прежде чем создать БД, необходимо открыть постоянное соединение с MySQL-сервером. База данных создается с помощью функции mysql_create_db(). Ниже представлен скрипт создания базы данных.
<?php
$link = mysql_pconnect("localhost", "root")
or exit("Невозможно установить соединение");
if (mysql_create_db("Ychet_izdelij")) {
print ("База данных создана успешно\n");
} else {
printf ("Ошибка создания базы данных: %s\n", mysql_error ());
}
?>
Данный скрипт размещаем на локальном сервере в созданной ранее папке.
