Проектирование структуры базы данных. Нормализация таблиц

Автор работы: Пользователь скрыл имя, 29 Октября 2012 в 14:23, лабораторная работа

Описание

Цель работы: познакомить с понятием "концептуальная модель"; научиться правильно использовать принципы нормализации при проектиировании базы данных.
Постановка задачи
Пусть некоторая риелтерская контора "Аренда Minus" специализируется на заключении договоров аренды жилых помещений. Круг клиентов-арендаторов "Аренда Minus" не стабилен. Необходимо автоматизировать процесс регистрации и хранения договоров аренды.

Работа состоит из  1 файл

лаб по РУБД.doc

— 3.12 Мб (Скачать документ)

procedure TfmFindLease.btFindClick(Sender: TObject);

begin

with dmPrn.quLsOwRRn do begin

Close;

ParamByName('NameTn').AsString := Editl.Text;

Open ;

end;

end;

  1. Сохраните проект в папке Print (File/Save Project As), откомпилируйте его и проверьте работоспособность.

 


 

 

 

 

 

Результат поиска

 

Совет: Для отображения всех цифр года в дате создайте постоянный набор quLsOw-RRnL_LDATE, используя Fields Editor, и определите свойство DisplayFormat набора как dd.mm.yyyy.

 

  1. Теперь, когда данные договора извлечены, реализуем его печать. Поставим в соответствие событию Onclick кнопки Печать (btPrint) процедуру:

 

procedure TfmFindLease.btPrintClick(Sender: TObject);

begin

PrintLease(True);

end;

 

При таком значении параметра  процедура

procedure TfmFindLease.PrintLease(Preview: Boolean);

begin

if Preview then

PrnLease.QuickRepl.Preview

else

PrnLease.QuickRepl.Print;

end;

печатает отчет. PrnLease — форма отчета.

  1. Объявите процедуру PrintLease в разделе private модуля Find.pas.
  2. Создадим форму отчета. Добавьте новую форму и назовите ее PrnLease (File/New/Form).

Результат поиска

  1. Поместите на нее компонент TQuickRep.
  2. Поместите в отчет компонент TQRBand, и определите его свойство BandType как rbDetail.
  3. Расположите на полосе компонент TQRExprMemo.
  4. Используя свойство Lines, вызовите окно String List Editor и введите туда текст договора аренды.

Окно String List Editir

 

  1. Закройте редактор и увеличьте размеры полосы и  компонента TQRExprMemo так, чтобы было видно весь текст договора.
  2. Теперь щелкните правой кнопкой мыши в поле отчета и выберите из контекстного меню пункт Report settings.
  3. Выберите из раскрывающегося списка Paper size значение Custom Size и установите требуемую ширину и высоту листа, которая на ширину полей превышает текст договора.
  4. Сохраните в папке Print разработанный модуль печати договора , PrnLease под именем PrnLeaseLJ.pas.

Результат печати отчета

  1. Добавьте имя модуля в секцию implementation модуля Find (File/Use Unit).
  2. Добавьте имя модуля данных в секцию implementation модуля PrnLeaseUjB
  3. Объявите значение свойства Dataset компонента TQuickRep равным dmPrn.quLsOwRRn.
  4. Сохраните проект в папке Print, откомпилируйте его и проверьте работоспособность.

 

Лабораторная №16

Установление привилегии доступа.

Цель  работы: научится устанавливать привилегии на доступ к таблице, полю таблицы, к хранимой процедуре.

 

Привилегии представляют собой  права доступа к БД. Управление привилегиями заключается в их установке и удалении. Установку привилегий выполняет инструкция:

 

GRANT <Список описателей  вида доступа>

ON [TABLE] {<Имя таблицы> | <Имя просмотра>}ТО {<Пользователь> | <Список пользователей;}

EXECUTE ON PROCEDURE <Имя процедуры> ТО {<Пользователь> | <Список пользователей;};

 

<Пользователь> =PROCEDURE <Имя процедуры>/ TRIGGER <Имя триггера>/ VIEW <Имя просмотра>/ [USER] <Имя  пользователя>/ PUBLIC

<Список пользователей> = [USER] <Имя пользователя1>...[,[USER] <Имя  пользователяN] [WITH GRANT OPTION]

Описатель WITH GRANT OPTION означает, что пользователь может устанавливать  предоставленные ему привилегии другим пользователям. В качестве описателей, определяющих вид доступа, указываются  следующие:

  1. ALL (все права доступа);
  2. INSERT (вставка);
  3. SELECT (только чтение);
  4. UPDATE (модификация);
  5. DELETE (удаление).
  • Установка привилегий:

Ход работы:

  1. Запустить утилиту IBConsole
  2. Запустить утилиту Interactive SQL.
  3. Создать роли - OBEKT и ARENDA: CREATE ROLE OBEKT; CREATE ROLE ARENDA.
  4. Назначить права доступа каждой из этих ролей; роль OBEKT – просмотр всех таблиц, изменение имени и адреса места жительства владельца недвижимости, роль ARENDA – полное право доступа ко всем таблицам.

 

роль OBEKT

 

GRANT SELECT ON Rent TO OBEKT;

GRANT SELECT ON Lease TO OBEKT;

GRANT SELECT ON Realty TO OBEKT;

GRANT SELECT, UPDATE (Ow, AdO) ON Owner TO OBEKT;

 

роль ARENDA

 

GRANT ALL ON Owner TO ARENDA;

GRANT ALL ON Lease TO ARENDA;

GRANT ALL ON Realty TO ARENDA;

GRANT ALL ON Rent TO ARENDA;

 

Удаление привилегий заключается в отмене заданного ранее права доступа. Отмену привилегии выполняет инструкция REVOKE, формат которой аналогичен формату инструкции GRANT установки привилегии. Отличие заключается в том, что инструкция дополнительно имеет необязательный описатель GRANT OPTION FOR, который удаляет не саму привилегию, а право выдачи ее другим пользователям. Отметим, что удалить привилегию может только тот, кто ее установил. После выполнения команды REVOKE ALL ON Rent TO OBEKT; пользователь с именем OBEKT лишается права доступа к таблице Rent.

 

Лабораторная №17

Копирование и восстановление данных.

Цель работы: научится создавать резервную копию базы данных, производить восстановление базы данных; выполнять регистрацию новых пользователей.

  • Регистрация параметров сервера на клиенте

При работе с InterBase-сервером по протоколу TCP/IP необходимо описать его свойства на компьютере клиента.

    1. Указать в файле HOSTS.SAM IP-адрес компьютера, на котором он установлен. Например, так (IP-адрес и сетевое имя сервера соответственно):
        1. С232
    2. В файле SERVICES указать протокол доступа к серверу InterBase: gds_db 3050/tcp

 

Примечание

Файлы HOSTS.SAM и SERVICES находятся в папке, куда инсталлирована операционная система Windows.

Чтобы узнать IP-адрес компьютера, на котором установлен сервер InterBase, если этот компьютер работает под управлением Windows 98.

  1. Выполните на этом компьютере команду Настройка/Панель управления.
  2. Выберите значок Сеть.
  3. В появившемся окне выберите компонент TCP/IP.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбор протокола соединения

Определение IP-адреса

  1. Щелкните мышью на кнопке Свойства.
  2. В появившемся окне посмотрите IP-адрес
  • Соединение с удаленным сервером

Прежде чем  соединить приложение-клиент с SQL-сервером, следует проверить наличие сетевого соединения. Это можно сделать с помощью утилит PING или TELNET.

  1. Запустите IBConsole.
  2. Зарегистрируйте сервер:

 

  • выберите в главном меню Server/Register;
  • в появившемся окне Register Server and Connect активизируйте переключатель Remote Server, в поле Server Name наберите сетевое имя сервера, а в поле Network Protocol выберите TCP/IP.

 

 

 

 

 

 

 

 

 

 

 

Регистрация сервера

  1. Используя утилиту PING проверьте доступность по сети компьютера, на котором установлен сервер. Если компьютер доступен, то в окне Communication Diagnostics вы увидите значение параметра Lost равным нулю.


Если после  щелчка на кнопке Test в окне Communication Diagnostics число потерянных пакетов (параметр Lost) будет отлично от нуля, то в сети есть проблемы с протоколом TCP/IP.

  1. Проверьте доступность сервера InterBase. Если сервер доступен, то в окне Communication Diagnostics вы увидите сообщение "TCP/IP Communication Test Passed!".

Если после  щелчка на кнопке Test в окне Communication Diagnostics вмес" сообщения "TCP/IP Communication Test Passed!" вы увидите "TCP/IP Communication Test Failed!", то доступ к серверу InterBase отсутствует.


Проверка  связи с компьютером

Проверка  связи с сервером InterBase

  • Описание параметров базы данных в клиентском приложении

Условно разделим клиентские приложения на BDE-ориентированные и прочие. Другими словами, использующих для доступа к базе данных либо алиас, либо полный путь.

В первом случае для соединения с удаленной базой  данных по протоколу TCP/IP используйте двоеточие для отделения имени сервера от полного имени базы данных. Например, так:

с232: C:\dbApp\clsrv\Exmpl\Exmpl.gdb

Здесь с232 — сетевое имя компьютера, на котором установлен сервер;

 

 

 

 

 

 

 

 

 



 

Параметры соединения BDE-ориентированного клиента

В случае не BDE-ориентированных клиентов имя компьютера на котором установлен сервер, и полный путь к базе данных прописываются отдельно. Например, используя IBConsole, мы сначала зарегистрировали сервер.

Теперь можно  зарегистрировать саму базу данных (Database/Register), чтобы убедиться, что ее данные доступны на настоящем клиентском месте.

 

 

 

 

Параметры соединения не ВDEориентированного клиента

Контрольное задание: Выполнить резервное копирование таблиц базы данных Exmpl.gdb.

 

Лабораторная №18

Копирование клиентской части

Цель работы: научится управлять работой утилиты InstallShield .

  • Создание дистрибутива приложения с помощью InstallShield Express

Рассмотрим ситуацию, когда необходимо перенести приложение на компьютер, где не установлен BDE или приложение разрабатывалось в новой версии. В этом случае применяют утилиту InstallShield Express. Рассмотрим перенос информационной системы "Аренда Minus", приложение, которой расположена на диске D: в папке D:\Test_Db, а база Exmpl.gdb в папке D:\Test_Db\Db

Ход работы:

  1. Создайте на диске D: папку Test_Db и вложенную в нее папку Db.
  2. Скопируйте в папку Test_Db exe-файл разработанного приложения.
  3. Таблицы базы скопируйте в папку Db.
  4. Запустите утилиту  InstallShield.
  5. Выполните команду меню View- View List

I шаг Organize Your Setup

  1. Выберите команду Create a new project
  2. Создайте папку prjInst для хранения проекта.
  3. Введите полное имя проекта D:\test_db\prJInst\dbApp.ism

 

 

  1. Выбрать опцию General Information/
  2. Свойство INSTALLDIR - [ProgramFilesFolder]\test_db
  3. Свойство DATABASEDIR - [INSTALLDIR]\db
  4. В управляющем списке выбрать возможные типы установки.

 

II шаг  Specify Application Data

  1. Выбрать в управляющем списке Files.
  2. Щелкните правой кнопкой мыши на пункте Destination Computer в окне Destination computer’s folders и выберите из появившегося контекстного меню Show Predefined Folder/[INSTALLDIR].
  3. В верхнем окне перейдите в папку D:\Test_DB и перетащите исполняемый файл в папку [INSTALLDIR].
  4. Аналогично перетащить файлы базы данных в папку [DATABASEDIR].
  5. Описать драйверы, которые должны быть в дистрибутиве
  • Выбрать Object/Merge Modules;
  • В окне InstallShield Object/Merge Modules выбрать BDE_ENT;
  • Выбрать Create a new BDE Configuration file;
  • Перейти в окно навигатора и создать в папке D:\test_db\prJInst  файл BDEcfg.ini ;
  • Далее кнопка Launch и окно выбора алиаса и драйвера базы данных.

III шаг  Configure the Target System

  1. Выбрать в управляющем списке Registry.
  2. Скопируйте папку HKEY_LOCAL_MACHINE/Software/Borland/Database Engine
  3. Поместите копию в папку HKEY_LOCAL_MACHINE/Software/Borland/Database Engine

IV шаг  Prepare for Release

  1. Выбрать в списке Build Your Release.
  2. В списке Builds выбрать CD-ROM .
  3. В контекстном меню выбрать Build.
  4. Выполните пункт Distribute Your Release.

 

Список рекомендуемых  баз данных

1. Городской телефонный справочник.

2. Электронный алфавитно-систематический каталог библиотеки.

3. Информационная поисковая система «Клиенты библиотеки».

4. Автоматизация работы отдела кадров при приеме на работу сотрудников предприятия. Заполнение анкеты. Статистический учет работников на предприятии.

5. Система «Биржа труда». Постановка на учет. Информация о трудоустройстве.

6. Касса автовокзала. Продажа билетов.

Информация о работе Проектирование структуры базы данных. Нормализация таблиц