Кафедра
электронно-вычислительная аппаратуры
Отчет по дисциплине Базы данных
лабораторная работа
Проектирование и реализация информационно-поисковой системы с помощью CASE-средства DBDesigner
Москва 2006 г.
Содержание
ЗАДАНИЕ
ВОЗМОЖНОСТИ ПРОГРАММЫ DBDESIGNER
Основные этапы проектирования базы данных:
ВЫПОЛНЕНИЕ
1. Моделирование
1) Создание таблиц
2) Формирование отношений
2. Кодирование
3. Работа с базой данных
1) Установление соединения с базой данных на сервере
2) Синхронизация
4. SQL-запросы
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ЗАДАНИЕ
Целью данной лабораторной работы является проектирование и реализация информационно-поисковой системы с помощью CASE-средства DBDesigner в среде Intranet:
1. Моделирование
1) Создание таблиц
2) Формирование отношений
2. Кодирование
3. Работа с базой данных
1) Установление соединения с базой данных на сервере
2) Синхронизация
4. SQL-запросы
ВОЗМОЖНОСТИ ПРОГРАММЫ DBDESIGNER
CASE-средства представляют собой программные средства, поддерживающие процессы создания и/или сопровождения информационных систем, такие как: анализ и формулировка требований, проектирование баз данных и приложений, генерация кода, тестирование, обеспечение качества, управление конфигурацией и проектом.
CASE-систему можно определить как набор CASE-средств, имеющих определенное функциональное предназначение и выполненных в рамках единого продукта.
DBDesigner – это свободно распространяемая CASE-система, предназначенная для проектирования, моделирования, создания и поддержки информационных систем. Программа может использоваться для Windows 2000/XP, LinuxKDE/Gnome и MySQL. DBDesigner позволяет:
· создавать модель проектируемой системы;
· преобразовывать модели системы в SQL-код, который можно использовать для создания базы данных с помощью DBDesigner или другого средства;
· проводить реинжиниринг – построение исходной модели программной системы путем исследования ее программных кодов. Эта функция очень удобна в случае, если необходимо разобраться уже существующей базе данных. Для проведения реинжиниринга следует выбрать в меню Database – ReversEngineering;
· создавать базу данных и автоматически вносить в нее изменения, используя соединение с сервером и синхронизацию;
· создавать SQL-запросы для внесения изменений и проведения операций над данными.
Пользовательский интерфейс программы:
Основные этапы проектирования базы данных:
1. Описание предметной области. Определение цели создания базы данных.
2. Определение сущностей предметной области (таблиц), которые должна содержать база данных.
3. Определение атрибутов сущностей (необходимых в таблицах полей).
4. Построение инфологической модели. Определение связей между сущностями (таблицами).
Предметная область: База данных пользователей домашней локальной сети и Интернет. Данная база данных содержит в себе три сущности: «Пользователь», «Тариф» и «Зачисление». В сущность «Пользователь» включены следующие поля: «№ договора», «ФИО», «Адрес», «Телефон», «Имя компьютера», «Ник», «IP-адрес», «MAC-адрес», «Статус», «Тариф», «Баланс», «Дата подключения», «Особые отметки». Сущность «Тариф» содержит в себе два поля: «Название тарифа», «Стоимость». Сущность «Зачисление» включает себя поля «№ зачисления», «№ договора», «ФИО», «Сумма», «Дата», «Особые отметки».
Инфологическая модель:
Зачисление --Пользователь --Тариф
Зачисление(№ зачисления, № договора, ФИО, Сумма», Дата, Особые отметки)
Пользователь(№ договора, ФИО, Адрес, Телефон, Имя компьютера, Ник, IP-адрес, MAC-адрес, Статус, Название Тариф, Баланс, Дата подключения, Особые отметки)
Тариф(Название тарифа, Стоимость)
Датологическая модель:
Здесь составим саму реляционную модель проектируемой БД: раскроем все связи между сущностями как связи между ключами. Для этого добавим в одну из связываемых сущностей дополнительный атрибут – первичный ключ из другой сущности. Причем добавление будем осуществлять в ту из этих сущностей, где не нарушится понятие ее первичного ключа.
Зачисление | Пользователь | Тариф |
№ зачисления | № договора | Название тарифа |
ФИО | ФИО | Стоимость |
Сумма | Адрес | |
Дата | Телефон | |
Особые отметки | Имя компьютера | |
№ договора | Ник | |
IP-адрес | ||
MAC-адрес | ||
Статус | ||
Баланс | ||
Дата подключения | ||
Особые отметки | ||
Название Тариф |
ВЫПОЛНЕНИЕ
Предметной областью разрабатываемой базы системы является информация о пользователях домашней локальной сети и Интернет. Необходимо обеспечить возможность внесения, изменения или удаления данных в базе и проведение различных поисковых операций
1. Моделирование
Модель
– это визуальное представление структуры данных. Модель может включать в себя следующие объекты: таблицы и отношения, которые используются обязательно, и дополнительные (например, изображения, записи) – для обеспечения лучшего «понимания» структуры модели.
Для создания модели необходимо переключится в Design Mode, выбрав меню Display - Design Mode. Пользовательский интерфейс делает создание модели базы данных очень легким. DBDesigner 4 поддерживает Multible Document Interface(MDI), который позволяет открывать неограниченное число моделей одновременно. При работе, вы можете переключаться между моделями, копируя команды и объекты, чтобы обмениваться ими между моделями.
1) Создание таблиц
В левой части холста находится панель инструментов. Необходимо нажать на этой панели кнопку и указать место на холсте, где будет располагаться новая сущность. Появится прямоугольное изображение пустой сущности. Чтобы задать атрибуты сущности, необходимо два раз щелкнуть на изображении сущности. В появившемся окне можно задать название сущности, а также атрибуты этой сущности.
Флаг в поле NN означает, что содержимое данного поля не может быть нулевым ( NotNull ). Флаг в поле AI означает, что значение данного поля в каждой следующей строке увеличивается на 1 (AutoIncrement ).
Иконка напротив имени атрибута означает, что этот атрибут является ключевым.
2) Формирование отношений
Связь между сущностями определяет связь между будущими таблицами. Для этого необходимо поставить флаг напротив после всех полей в разделе параметры отношений и внешних ключей (раздел DefaultRelationSettings / ForeignKeysSettings) во вкладке редактирования модели (EditingOptions), В программе связи задаются следующим образом.
· Связь 1:1 задается с помощью кнопки .
· Связь 1:n задается с помощью кнопки .
· Связь n:m задается с помощью кнопки .
Задать связь между сущностями можно, нажав на соответствующую кнопку и указав связываемые таблицы. После нажатия кнопки связи, надо нажать на первую таблицу, участвующую в связи, затем на другую. Внешние ключи будут автоматически добавлены в сущности соответственно связи.
Результат связывания сущностей показан на рисунке:
Двойным щелчком по изображению связь можно редактировать свойства связи, такие как название связи и тип связи.
Особенн
. Это очень удобно при проектировании, т.к. позволяет разработчику не запоминать правила формирования отношений для различных связей между таблицами, а получать все автоматически на основе анализа предметной области.
Связи между таблицами можно корректировать, используя «Редактор связей» (Relation Editor), вызываемый двойным щелчком мыши. В «Редакторе связей» можно задать имя связи, изменить ее тип и задать ограничения на данные таблицы при удалении и добавлении в нее данных.
2. Кодирование
DBDesigner позволяет преобразовывать полученную модель в код на языке SQL, который может быть использован для создания базы данных с помощью других средств, например, с помощью MySQL.
Для получения кода необходимо выбрать в меню File – Export – SQLCreateScript. Откроется диалоговое окно, представленное на рисунке:
В основных настройках (GeneralSettings) можно назначить экспортировать в SQL код только выделенные таблицы или экспортировать все таблицы модели, также можно задать упорядочить таблицы по внешним ключам.
- Exportselectedtablesonly – кодировать только выбранные таблицы
- OrderTablesbyForeignKeys – позволяет изменить порядок кодирования
В настройках SQL кода (SQLCreatesSettings) можно настроить параметры связанные с первичными ключами и внешними ключами, а также задать настройки относительно индексов.
- CopyScripttoClipboard. Позволяет скопировать SQL код в буфер обмена;-
- SaveScripttofile. Позволяет сохранить SQL код в файл. Файл сохраняется в формате *.sql. Открыть его можно и в текстовом редакторе «Блокнот»
Выбрав необходимые параметры, необходимо нажать SaveScripttofile. Файл с SQL кодом будет сохранен на диске.
CREATE TABLE tarif (
tarif VARCHAR(20) NOT NULL AUTO_INCREMENT,
stoimost INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(tarif)
);
CREATE TABLE user (
nomer_dogovora INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
tarif_tarif VARCHAR(20) NOT NULL,
name VARCHAR(20) NOT NULL,
address VARCHAR(20) NOT NULL,
phone INTEGER UNSIGNED NOT NULL,
computer_name VARCHAR(20) NOT NULL,
nick VARCHAR(20) NOT NULL,
ip_address VARCHAR(20) NOT NULL,
mac_address VARCHAR(20) NOT NULL,
stat BOOL NOT NULL,
tarif VARCHAR(20) NOT NULL,
balance INTEGER UNSIGNED NOT NULL,
date_connect DATE NOT NULL,
otmetki VARCHAR(45) NOT NULL,
PRIMARY KEY(nomer_dogovora, tarif_tarif),
INDEX user_FKIndex1(tarif_tarif)
);
CREATE TABLE zachislenie (
nomer_zachisleniya INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
user_nomer_dogovora INTEGER UNSIGNED NOT NULL,
nomer_dogovora INTEGER UNSIGNED NOT NULL,
name VARCHAR(20) NOT NULL,
tarif VARCHAR(20) NOT NULL,
summa INTEGER UNSIGNED NOT NULL,
date DATE NOT NULL,
otmetki VARCHAR(45) NOT NULL,
PRIMARY KEY(nomer_zachisleniya, user_nomer_dogovora),
INDEX zachislenie_FKIndex1(user_nomer_dogovora)
);
3. Работа с базой данных
DBDesigner позволяет также создавать базу данных на сервере и выполнять с ней различные операции. Это обеспечивается за счет подключения DBDesigner к MySQL серверу, созданию базы данных и установлению синхронизации между базой на сервере и визуальной моделью. Синхронизация – это сравнение визуальной модели и базы данных, находящейся на сервере. В случае внесения изменений в таблицу, изменения связей между таблицами или удаления таблиц в модели, DBDesigner внесет и соответствующие изменения в базу на сервере.
1) Установление соединения с базой данных на сервере
Для занесения базы данных, соответствующей полученной модели, на сервер MySQL, необходимо установить соединение с сервером.
- ВыполнитеDatabase –> Connect to Database.
- Вокне Network Hosts выберите MySQL
- В открывшемся списке баз данных, выберите либо существующую базу, либо создать новую, щелкнув два раза по значку «…» и задав имя новой базы.
- Введите название соединения (Connection), имя пользователя (Username) и пароль (Password), если они нужны.
- В центральном окне находится список серверов баз данных, с которыми велась работа и для которых указаны IP-адрес, тип, размещение и название. Так как в данной работе предполагается, что сервер MySQL находиться на локальном компьютере, то все необходимые параметры будут установлены автоматически. Однако при использовании сети, необходимо знать IP-адрес сервера и иметь доступ на работу.
- Нажмите на кнопку Connect, после чего соединение с базой будет установлено.
2) Синхронизация
Для синхронизации модели и базы на сервере необходимо:
- Выбрать в меню Database - DatabaseSynchronisation и установить соединение с нужной базой.
- В диалоговом окне DatabaseSynchronisation задать необходимые параметры:
o ApplychangestoDatabase – вносить изменения модели в базу
o Don'tdeleteexisitingTables – при использовании этой опции таблицы, удаленные из модели, не будут удалены из базы
o ExecuteStandardInsertswhenCreatingNewTables – создавать стандартный запрос на внесение данных в таблицу - Нажать Execute, после чего база данных будет занесена на сервер. Также будет выведен отчет и сообщения об ошибках в модели, если они есть.
Проверка получившегося с помощью клиента MySQL:
4. SQL-запросы
DBDesigner также позволяет создавать запросы на языке SQL. Причем код запроса можно либо непосредственно написать, либо использовать готовые шаблоны, в которые необходимо только внести какие-то изменения.
Для работы с запросами необходимо:
- Переключиться в QueryMode, выбрав в меню Display -> QueryMode.
- В меню инструментов слева появятся кнопки, с помощью которых можно выполнить основные запросы.
- Выбрав кнопку (например, SELECT), следует щелкнуть по заголовку таблицы, а затем, не отпуская кнопку мыши, сдвинуть указатель вниз.
- В появившемся меню выбрать нужную операцию.
- Код на языке SQL появиться в нижней части экрана.
SELECT *
FROM user
- Нажав на кнопку ExecuteSQLQuery, в нижней части экрана можно увидеть результат запроса.
SELECT user.Nomer_dogovora, user.name, user.computer_name
FROM user
WHERE user.computer_name Like ‘Ivan%*’
ORDER BY user.Nomer_dogovora;
SELECT zachislenie.nomer_zachisleniya, user.name, user.Nomer_dogovora, tarif.tarif_name
FROM taruf INNER JOIN (user INNER JOIN zachislenie ON user.Nomer_dogovora = zachislenie.nomer_dogovora) ON tarif.tarif_name = zachislenie.tarif
WHERE zachislenie.nomer_zachisleniya Between 1 And 12 AND user.name Like ‘Юзер%’ AND user.Nomer_dogovora<>701 AND tarif.tarif_name Like ‘а%’;
UPDATE tarif
SET stoimost = stoimost*1.5
WHEREstoimost<350;
SELECTMAX(stoimost) AS 'самая максимальная стоимость тарифа'
FROM tarif
DBDesigner предоставляет различные функции для работы с запросами: сохранение кода, внесение изменений в базу и отмена внесенных изменений. Благодаря этим встроенным функциям работа с запросами существенно упрощается.
Кроме того, в программе есть очень удобное средство для внесения данных в таблицу. Щелкнув правой кнопкой мыши по таблице и выбрав в меню EditTableData, можно заносить данные в таблицу или изменять их без использования языка SQL.
Список использованных источников
· DBDesigner “HELP”
· DBDesigner4_manual
· «Базы данных», А.Д.Хомоненко. «Корона принт», 2000 год