Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

По дисциплине: Базы данных

К выполнению лабораторной работы

Методические указания

(спец. 220100)

«Утверждено»

на заседании редсовета

Протокол № _________

«___»____________ 20___ г.

 

Байконур 2012

Содержание

 

  Цель работы  
  Создание БД в среде MS SQL Server  
  Создание таблиц  
  Создание диаграммы БД  
  Создание клиентского приложения с помощью Delphi  
4.1 Создание нового проекта  
4.2 Создание соединения с БД  
4.3 Подключение к таблице БД с помощью механизма ADO  
4.4 Создание подчиненной таблицы  
  Постановка задачи  
  Структура отчета  
  Список литературы  

 

 


Цель работы:

 

Изучить основы создания клиент-серверных приложений. Освоить работу с СУБД MS SQL Server.

 

 

1 Создание БД в среде MS SQL Server

 

Изучение средств СУБД MS SQL Server и Delphi будет осуществляться на примере учебной БД «Недвижимость».

Есть некоторая компания занимающаяся сдачей недвижимости в аренду, которая имеет отделения в разных городах. Каждый сотрудник компании прикреплен к определенному отделению. Клиент желающий сдавать свою недвижимость в аренду (будем называть его владелец) обращается в отделение компании расположенное в его городе. Сотрудник компании, работающий в данном отделении, регистрирует данного владельца (имя, фамилия, адрес, телефон) и информацию о его недвижимости (адрес, город, почтовый индекс, тип недвижимости – дом, отель, гараж, кол-во комнат, арендная плата). Также в компанию обращаются клиенты желающие арендовать некоторый тип недвижимости (будем их называть - клиент). При обращении клиента в ближайшее отделение компании, сотрудник этого отделения регистрирует этого клиента (имя, фамилия, телефон, желаемый тип недвижимости, максимальная арендная плата которую он готов платить). Данные о клиенте, желающем арендовать недвижимость, хранятся отдельно от данных о владельцах, сдающих недвижимость в аренду. Вообще этим занимаются разные отделы компании, но в рамках лабораторной работы опускаем это обстоятельство из рассмотрения. Далее клиент осматривает подходящие ему объекты недвижимости, причем все детали осмотра фиксируются (номер клиента осматривавшего объект, дата осмотра, номер объекта недвижимости, комментарий сделанный клиентом по поводу данного объекта). Следует еще отметить что при регистрации недвижимости и клиента им даются уникальные номера (идентификаторы): номер_недвижимости и номер_клиента.

Итак выявим сущности участвющие в описанных выше действиях. Для этого можно использовать метод основанный на выявлении существительных (вопросы кто? что?), причем это должны быть реально существующие объекты. Итак сущностями у нас являются:

- владелец;

- недвижимость;

- клиент;

- отделение;

- сотрудник.

Также мы отмечали, что необходимо хранить информацию об осмотрах сделанных клиентом. Для этого выделим еще одну абстрактную сущность «Осмотры» которая хранит информацию об осмотрах. Далее рассмотрение сущности клиент приводит к заключению что он не привязан к определенному месту или отделению. Т.е. он может быть зарегистрирован в разных отделениях компани, в разных городах. Чтобы решить эту проблему введем еще одну абстрактную сущность «Регистрация» в которой содержаться данные о регистрации клиента в том или другом отделении компании (номер_клиента, номер_отделения, номер_сотрудника, дата_регистрации). Отметим что данная при регистрации клиента он привязывается и к сотруднику (номер_сотрудника) и к отделению (номер_отделения) это делается для избежания так называемой аномалии удаления, т.е. если мы привязываем клиента только к сотруднику то при увольнении сотрудника неявным образом удаляются все данные о клиентах с которыми он работал, а если мы привязываем его также к отделению, то понятно что отделение всегда будет так как отделение не уволить с работы. Для владельца введение такой сущности не нужно, так как он связан со своей недвижимостью который как следует из названия привязан к определенному месту и в двух местах зарегистрирован быть не может.

На основе всего вышесказанного опишем все наши сущности в виде таблиц.

Персонал
Номер_сотрудника PK
Имя  
Фамилия  
Должность  
Пол  
Дата_рождения  
Оклад  
Номер_отделения  
Отделения
Номер_отделения PK
Улица  
Город  
Почтовый_индекс  

 

Первая строка здесь это название сущности. Остальные строки атрибуты сущности. Жирным выделен первичный ключ отношения. Атрибут являющийся первичным ключом также помечен меткой PK – primary key.

Недвижимость
Номер_недвижимости PK
Адрес  
Город  
Тип_недвижимости  
Количество_комнат  
Арендная_плата  
Номер_отделения  
Номер_отделения  
Номер_клиента  
Владелец
Номер_владельца PK
Имя  
Фамилия  
Адрес  
Телефон  
Клиент
Номер_клиента PK
Имя  
Фамилия  
Телефон  
Желаемый_тип_недвижимости  
Максимальная_арендная_плата  

 

Регистрация
Номер_записи PK
Номер_клиента  
Номер_отделения  
Номер_сотрудника  
Дата_регистрации  
Осмотры
Номер_записи PK
Номер_клиента  
Номер_недвижимости  
Дата_осмотра  
Комментарий  

 

Запускаем SQL Server. Для этого выбираем пункт Пуск -> Программы -> MS SQL Server 2008 R2 -> SQL Server Management Studio

Появится следующее окно

Здесь Mainframe – название серверного компьютера (нужно ввести соответствующее имя, а не это), в случае если сервер установлен на том же компьютере на котором вы работаете, вместо название компьютера можно ввести «.»

 

Authenticatiuon – определяет тип авторизации (SQL Server или система). Если настройки SQL Servera позволяют, то можно выбрать тип авторизации «Windows authentication» и не вводить «логин\пароль». Иначе необходимо ввести логин – обычно по умолчанию «sa» и пароль.

В левой части окна выбираем ветку «Databases»

Далее кликаем правой кнопкой мыши на самой ветке

 

Выбираем пункт «New DataBase»

В поле «Database name» вводим имя нашей БД (по желанию)

Жмем «OK» и видим что в левой части окна появилась новая БД с заданным вами названием (в данном случае «Laboratornaya_1»).

Все на этом создание новой БД закончено.

 


 

2 Создание таблиц

 

Рассмотрим процесс созадания таблиц на примере сущности «Персонал».

В правой стороне окна раскрываем созданную нами БД. Кликаем правой кнопкой мыши на ветке «Tables» и выбираем пункт "New table"

 

В появившемся окне вводим атрибуты сущностия: номер_сотрудника, имя, фамилия, должность, пол, дата_рождения, оклад, номер_отделения.

Для каждого поля задаем тип данных

номер_сотрудника – nchar (10)

имя – nvarchar(50)

фамилия – nvarchar(50)

должность – nvarchar(50)

пол – nchar(10)

дата_рождения – datetime

оклад – money

номер_отделения – nchar(10)

Названия полей и типы данных, обязательность полей – все это определяет проектировщик БД то есть вы на основе раздичных критериев (оптимальность, понятность, удобство и т.д.). Третий солбец задет признак обязательности заполнения поля, т.е если стоит галочка то при вставке новой записи в таблицу данное поле можно оставляь пустым. Во избежание проблем в лабораторной работе третий столбец не трогаем.

В итоге получаем следующий результат

 

Теперь нам необходимо выбрать атрибут который однозначно идентифицирует (не повторяется, является уникальным для каждой записи) записи нашей таблицы (первичный ключ). Для созданной таблицы таким атрибутом является «номер_сотрудника» так как у каждого сотрудника имеется свой уникальный номер. Для задания первичного ключа кликаем правой кнопкой мыши на нужном поле. В появившемся контекстном меню выбираем пункт «Set primary key»

 

Отметим кратко что, при выборе каждого поля в нижней части окна отображаются свойства данного поля. Там присутствуют различные свойства как нужные, так и не нужные (или понятные и непонятные). Отметим некоторые из них:

Default value or Binding – в данном свойстве можно задать значение по умолчанию, т.е. если мы задаем здесь некоторое значение (например для поля «имя» зададим значение Люция), то при заполнении таблицы если мы оставляем поле «Имя» пустым то в него автоматом занесется указанное нами значение (Люция).

Identity specification – в данном свойстве можно задавать автоинкрементное поле. Например в большинстве случаев в качестве идентификатора задаются челочисленные значения. В нашем примере номер_сотрудника это текстовое поле так как он может содержать и буквы (например «B003»). А если бы оно было чисто числовым (например сотрудники имели бы номера 1, 2, 3 и т.д.), то можно было бы для этого поля задать тип “int”, а в свойстве Identity specification -> Is identity задать «yes». Тогда для каждой новой записи таблицы автоматический формировалось быновое значение поля «номер_сотрудника» значение которого было бы больше на 1 значения предыдущей записи таблицы.

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

Это спрашивается сохранять изменения или нет. Жмем «yes» да сохранить. При этом появится новое окошко в котором необходимо ввести название таблицы. В данном случае «Персонал».

Все мы создали новую таблицу. Далее производим аналогичные действия для всех сущностей выявленных на этапе проектирования. Все создаваемые таблицы появляются в правой части окна в ветке «Tables».

В результате получаем следующие таблицы


3 Создание диаграммы БД

 

Рассмотрим процесс создания диаграммы БД. Кликаем правой кнопко мыши на ветке «Database Daigrams» и выбираем пункт «New Database Diagram»

В появившемся окне жмем «Yes» в результате появится следующее окно (выбор таблиц участвующих в создании диаграммы). Мы выбираем все таблицы (просто «Add» «Add» «Add»).

 

 

Расставляем таблицы так как считаем правильным и удобным.

Дальше анализируем как будут связаны наши таблицы на примере связи между сущностями «персонал» и «Отделение»:

таблицы Отделение и персонал связаны между собой связью «один-ко-многим» так как в одном отделении работают много сотрудников. А сама необходимость связи проистекает из того что каждый сотрудник привязан к определенному отделению и чтобы мы знали какой сотрудник в каком отделении работает мы ввели поле «номер_отделения» в таблице «Сотрудник». Это поле является теперь «внешним ключом» отншения «Персонал» по которому он связывается с отношением «Отделение» в котором поле «номер_отделения» является первичным ключом.

Для задания связи мы нажимаем кнопкой мыши на нужном поле таблицы «Персонал» (номер_отделения) и не отпуская кнопку перетаскиваем появившийся указатель на нужное поле таблицы «Отделение» (номер_отделения). В результате появится следующее окно

Еще раз смотрим и удостоверяемся в правильности выбранных полей в обеих таблицах и жмем «OK».

Таким же образом выявляются и задаются все остальные связи между таблицами (сущностями). В результате получим следующую диаграмму

Сохраняем поученную диаграмму.


 

4 Создание клиентского приложения с помощью Delphi

4.1 Создание соединения с БД

 

Запускаем RAD Studio (Delphi). Созадем новое приложение путем выбира пункта меню File -> New -> VCL Forms Application – Delphi

Появится новая пустая форма приложения

В левой нижней части окна расположен так называемый Инспектор объектов (Object Inspector) в котором задаются свойства выбранного компонента. В правой нижней части окна расположена Панель инструментов (Tool palette) в котором и находятся все наши компоненты с помощью которых мы создаем приложение.

Итак, в панели инструментов находим вкладку «dbGo» и выбираем компонент ADOConnection и переносим его на форму.

Выбираем наш компонент кликнув на нем один раз. В инспекторе объектов отобразятся его свойства.

Находим свойство «Connection string» и жмем на многоточие.

Появится следующее окно

Жмем «build» и выбираем Microsoft OLE DB Provider for SQL Server

Жмем "Далее" в результате появится следующее окно в котором нужно выбрать «Имя сервера», «Логин\пароль» и название нужной базы данных.

По поводупервых двух – вспмните что вводили при запуске MS SQL Server, а по поводу третьего – выберите ту базу данных которую вы создали на предыдущих этапах (в данном случае мы сохранили базу по именем «Laboratornaya_1»). Также пометьте галочку «Разрешить сохранение пароля». В результате окно будет выглядеть вот так

 

 

Еще раз, имя сервера, логин\пароль и название БД выбираете свои.

Все жмем «OK» «OK». Теперь нужно активизировать соединение для этого сначал найдите свойство «Login prompt» и выставте значение false. Это свойство отвечает за запрос пароля при каждом запуске прилоежения. Далее в инспекторе объектов находим свойство «Connected» и выставляем его в «true». Все мы активизировали соединение.

 

 

4.2 Подключение к таблице БД с помощью механизма ADO

 

Создадим соединение с таблицей «Отделение». Для этого в палитре инструментов на вкладке dbGo выбираем компонент ADOQuery и переносим ег на форму приложения. Далее в инспекторе объектов находим свойство «Connection» в нем указываем созданное нами ранее соединение ADOConnection. Т.е. все компоненты используемые нами для соединения с таблицами БД будут обращаться к БД через компонент ADOConnection.

Далее находим свойство «SQL» и жмем многоточие в результате повится следующее окно

В этом окне нужно ввести необходимый нам запрос. В нашем простейшем случае выберем все данные из таблицы «Отделение». Запрос для этого будет выглядеть следующим образом

Все жмем «OK» и находим свойство «Active» и выставляем значение true.

Теперь нам нужно отобразить нау таблицу. Для этого в панели инструментов используем компоненты со вкладки «Data controls», а именно компоненты DBGrid и DBNavigator и перенесем их на форму.

Теперь для связи компонентов ADO со средствами отображения используется специальный компонент DataSource. Т.е. связь выглядит следующим образом

 
 

 

 


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

Находим вкладку Data Access и выбираем компонент «Data Source» и переносим его на форму. В его свойстве «Dataset» указываем ADOQuery1. Теперь выбираем поочередно компоненты DBGrid и DBNavigator и в их свойстве «Datasource» указываем DataSource1. Настраиваем вид нашей таблицы так как нам нравится

 

 

4.3 Создание подчиненной таблицы

 

Создадим подчиненую таблицу для уже созданной нами таблице «Отделение». Подчиненной для нее является таблица «Персонал». Т.е. одной записи из таблицы «Отделение» может соответствовать множество записей таблицы «Персонал». В приложении это выглядит следующим образом при передвижении по записям главной таблицы («Отделение») в подчиненной таблице отображаются только те записи которые связаны с текущей записью главной таблицы.

Добавим на форму езще один компонент ADOQuery. В свойстве «Connection» указываем ADOConnection1. Теперь для того чтобы указать главную таблицу в свойстве «Data Source» указываем DataSource1 связанный с главной таблицей (ADOQuery1). Теперь в свойстве SQL прописываем

Здесь двоеточие указывает что значения стоящего после него «номер_отделения» будут браться из указанного нами DataSource1, т.е. это будет переменное значение.

Жмем «OK» активизируем наш ADOQuery2 выставив значение свойства Active в true. Добавляем на форму еще группу компонентов DataSource, DBGrid, DBNavigator. Выставляем соответствующие свойства:

Datasource2 -> DataSet – ADOQuery2

DBGrid, DBNavigator -> DataSource – DataSource2

Все на этом создание подчиненной таблицы закончено. Редактируем внешний вид так как нам нравится


 

5 Постановка задачи

 

Выполнить все вышеописанные действия для двух таблиц БД. Можно выбрать те же самые.
6 Структура отчета

 

Отчет должен содержать:

- титульный лист;

- цель работы, задание;

- порядок выполнения лабораторной работы;

- текст программы графического приложения;

- результат работы;

- выводы.

 

 

<== предыдущая лекция | следующая лекция ==>
Решение Уполномоченного по ГО (начальника службы РХЗ ГО) ОЭ (название ОЭ) по повышению устойчивости функционирования ОЭ (название ОЭ) в условиях ЧС военного времени | Основные типы данных
Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 291; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.