Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Среднее профессиональное образование 3 страница



• название книги;

• место (город) издания книги;

• год издания книги;

• объем книги в страницах;

• цена одного экземпляра книги;

• тип оформления книги;

• сведения о торговых скидках.

Для нормальной работы торговой группы необходима слеДУ "| ющая информация (концептуальные требования):


а) сведения о продавце:

• фамилия, имя и отчество продавца;

• должность;

• дата рождения;

• оклад;

• образование;

• дата поступления на работу;

б) сведения о клиенте:

• наименование фирмы;

• адрес фирмы;

• телефон;

• факс;

• фамилия, имя и отчество покупателя;

• признак юридического лица;

в) сведения о заказе:

• дата оформления заказа;

• наименование книги;

• количество;

• цена за один экземпляр;

• размер торговой скидки;

• сумма заказа;

• способ оплаты.

Для нормальной работы материальной группы необходима следующая информация (концептуальные требования):

а) сведения о счете:

• дата оплаты;

• оплаченная сумма;

• пометка об оплате;

б) сведения о продаже:

• Дата отпуска книг со склада;

• наименование книги;

• количество;

• Цена за один экземпляр;

• размер торговой скидки;

• сумма заказа;

• способ оплаты;

• номер склада;

• фамилия, имя и отчество кладовщика;

• фамилия, имя и отчество представителя заказчика, кому выдан заказ;

• паспортные данные представителя заказчика.

Для нормальной работы группы планирования необходима следующая информация (концептуальные требования):

• фамилия, имя и отчество автора (авторов);

• образование;

• ученая степень;

• ученое звание;

• дата рождения;

• адрес автора (авторов);

• наименование книги;

• дата сдачи рукописи;

• объем книги (в печатных листах);

• номер договора;

• сведения об авторских правах.

В результате проведенной работы выявлены четыре служб: (отдела), которые хранят, создают, редактируют и использую! информацию, и определены концептуальные требования.

На втором этапе проектирования базы данных определяю сущности и взаимосвязи между сущностями. В результате ана­лиза концептуальных требований получим следующую схему (рис. 1.12).


 

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

Исходя из рис. 1.12, можно сделать вывод, что сущность Кли­ент будет родительской, так как один клиент может сделать не­сколько заказов и оплатить несколько счетов, в то время как каж­дый заказ принадлежит только одному клиенту и оплату счета производит один клиент. Поэтому сущность Клиент может иметь только первичный ключ. Сущности Заказ и Счет будут до­черними и должны иметь как первичные, так и внешние ключи. Проведя аналогичные рассуждения для остальных сущностей, получим следующие концептуальные требования (табл. 1.1).



Эти концептуальные требования распределены на несколько частей-прообразов таблиц: «Клиент», «Заказ», «Счет», «Прода­жа», «Продавец», «Автор», «Каталог» и т. д.

Таблица 1.1.

Сущность

Ключ

Атрибут

Клиент

Первичный

номер клиента наименование фирмы адрес фирмы телефон фахс

фамилия, имя и отчество покупателя признак юридического липа

Заказ

Первичный

номер заказа

 

Внешний

номер клиента

 

Внешний

номер продавца

 

Внешний

номер издания (книги) дата оформления заказа наименование книги количество

цена за один экземпляр размер торговой скидки сумма заказа способ оплаты

Счет

Первичный

номер счета

 

Внешний

номер клиента

 

Внешний

номер накладной дата оплаты оплаченная сумма пометка об оплате

 

Таблица 1.1. Продолжение

Сущность Ключ Атрибут

Продажа Первичный номер накладной Внешний номер счета

дата отпуска книг со склада наименование книги количество

цена за один экземпляр размер торговой скидки сумма заказа способ оплаты номер склада

фамилия, имя и отчество кладовщика фамилия, имя и отчество представител заказчика

паспортные данные представителя заказчи

Продавец Первичный номер продавца

фамилия, имя и отчество продавца

должность

дата рождения

оклад

образование

дата поступления на работу

Автор Первичный номер автора

фамилия, имя и отчество автора

(авторов)

образование

ученая степень

ученое звание

дата рождения

адрес автора (авторов)

наименование книги

дата сдачи рукописи

объем книги (в печатных листах)

номер договора

сведения об авторских правах

Каталог Первичный номер издания (книги) Внешиий номер автора

фамилия, имя и отчество автора (авторов) книги наименование книги место (город) издания книги год издания книги объем книги в страницах иена одного экземпляра книги тип оформления книги

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

Условия первой нормальной формы таблицы:

• каждое поле должно быть неделимо;

• отсутствуют повторяющиеся поля или группы полей.

Проверим, удоатетворяют ли условиям первой нормальной формы концептуальные требования.

Таблица «Заказ» н таблица «Продажа» имеют повторяющиеся поля: наименование книги, количество, цена за один экземпляр, размер торговой скидки, сумма заказа, способ оплаты.

Кроме того, поле «наименование книги» повторяется в табли­цах «Автор» и «Каталог», а поле «цена одного экземпляра книги» — в таблице «Каталог».

Поэтому физическое хранение атрибута «наименование кни­га» оставим в таблице «Каталог», а для таблиц «Заказ», «Прода­жа» и «Автор» — создадим виртуальное поле подстановки этого атрибута. Атрибут <цсна одного экземпляра книги» сохраним в таблице «Каталог», для таблиц «Заказ» и «Продажа» создадим виртуальное поле подстановки. Поле «количество» имеет разный смысл: в таблице «Заказ» указано желаемое количество экземп­ляров книги, а таблица «Продажа» содержит количество опла­ченных экземпляров книги. Аналогичные рассуждения можно провести и для поля «сумма заказа», но это поле содержит резуль­тат умножения значения поля «количество» на значение поля «Цена одного экземпляра книги*. Поэтому поле «сумма заказа» будет виртуальным (вычисляемым) полем. Атрибут «способ оп­латы сохраним в таблице «Заказ», а для таблицы «Продажа* это поле оформим как виртуальное поле подстановки. При замене физических полей на виртуальные поля надо в таблицы ввести внешние ключи для связи с родительской таблицей (откуда бу­дем брать значение для подстановки).

Поле «Фамилия, имя и отчество автора» (покупателя, продав-

представителя заказчика и т. д.) разделим на три поля: фами- ляя»Имя» отчество. Аналогично поле «адрес» разделим на два по-

• город, улица и оставшаяся часть адреса Поэтому создадим

дополнительно пять таблиц, которые будут родительскими. Для наглядности сведем их в таблицу 1.2.

Таблица 1.2.

Таблица

Ключ

Пале

Фамилия

Первичный

номер фамилии фамилия

Имя

Первичный

номер имени имя

Отчество

Первичный

номер отчества отчество

Город

Первичный

номер города наименование города телефонный код города

Улица

Первичный

номер улицы название улицы округ (район)

 

Условия первой нормальной формы выполнены, и база дан­ных состоит из 12таблиц: Клиент (Customer), Заказ (Order), Счет (Account), Продажа (Sale), Продавец (Salesman), Каталог (Catalog), Автор (Author), Фамилия (Fam), Имя (Im), Отчество (Ot), Город (Town) и Улица (Street). (Таблицы 1.1 и 1.2 — вспомо- ] гательные, в базу данных они не входят.)

При выполнении условий второй нормальной формы для каждой таблицы либо назначают, либо заменяют имеющиеся первичные ключи.

Условия второй нормальной формы:

• выполняются условия первой нормальной формы;

• первичный ключ однозначно определяет всю запись;

• все поля зависят от первичного ключа;

• первичный ключ не должен быть избыточным.

Так как мы специально ввели первичные ключи, состоящие из одного поля, то избыточности первичного ключа быть не мо-

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

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

Аналогичные рассуждения можно провести для остальных таблиц.

Условия третьей нормальной формы:

• выполняются условия второй нормальной формы;

• каждое не ключевое поле не должно зависеть от другого не ключевого поля.

Фор*ЛЯ ВССХ та®лиц выполняются условия третьей нормальной

На пятом этапе проектирования баз данных описывается

Ждая таблица. Каждой таблице присваивается имя, каждому

лю присваивается имя, определяется тип и размер каждого

поля, указываются поля (или группы полей), по которым надо построить первичный и внешние ключи и индексы, определя­ются виртуальные поля, раскрывается назначение каждого поля (рис. 1.13).

Таблица «Заказ»

Имя Тип Размер Ключ Назначение Примечание

поля поля поля

Keyorder Num 3 Первичный Уникальный

номер заказа

Key_cust Num 3 Внешний Порядковый

номер клиента

Keysalmn Num 3 Внешний Порядковый

номер продавца

Key_book Num 3 Внешний Порядковый

номер книги

Key_acnt Num 3 Внешний Порядковый

номер счета

Volume Num 4 Количество

экземпляров

книги


 


Num 5.2

Ргос

Торговая скидка


 


Summa_zakaz Сумма заказа

Виртуальное

вычисляемое

Рис. 1.13. Описание таблицы «Заказ».


Глава 2

работа с таблицами

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

2.1. СОЗДАНИЕ ТАБЛИЦЫ

На этапе создания табличного файла надо описать структуру таб­лицы, а уже потом в созданную структуру заносить и нформашпо. Процесс создания таблицы можно сравнить с вычерчиванием пустой таблицы на листе бумаги. При этом в каждом столбце (по­ле) хранится значение одного атрибута. Очевидно, что описать в таблице надо такое количество полей, сколько атрибутов сущно­сти надо хранить Каждое поле описывается пятью характеристи­ками: имя поля (Name), тип поля (Туре), размер поля (Width), ко­личество десятичных знаков (Decimal) и допустимость пустого зна*ения (Null). Характеристика Decimal описывается только Для числовых полей.

Табличный файл можно создать двумя способами: с помощью команд и с помощью главного ме по.

Л- С помощью команд

В этом случае в окне Command надо подать команду CREATE и в появившейся на экране диалоговой панели Create задать в по­ле ввода En er table имя создаваемому табличному файлу и ука- ть место его хранения в раскрывающемся списке Папка, если это необходимо (рис. 2.1).

гоня 6 нажатия кнопки Сохранить на экран выводится диало-

Та^ая панель Table Designer (рис. 2.2) для описания структуры лицы, которая содержит две вкладки: Table (для создания таб-


"3


Лапка: j) Primer

)Autor DBF j catalog DBF l*)check.DBF jjj) Customer dbf | Fam DBF ]lfft.DBF


JOIDBF»] salesmenDBF ffl salmenDBF | street dbl j town DBF!»1 zakazDBF


Enter table


Отмена


1ип?4йл* \ Г Ate/DBF



£праэке


Рис. 2.1. Задание имени создаваемой таблице.


iniubi) и Index (для создания индексного файла). После выбора вкладки Table можно приступить к описанию структуры таблич­ного файла.

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

• Name — имя поля. Пишется буквами латинского алфавита, первый символ — обязательно буква, далее можно исполь­зовать цифры и знак подчеркивания.

• Туре — тип поля. Указывается один из допустимых типов поля либо с клавиатуры, либо открывается раскрывающий­ся список и на экран выводится список допустимых типов полей, из которого выбирается нужный тип.

• Width — указывается желаемый размер поля, но не больше допустимого.

• Decimal — количество разрядов дробной части числа. Поле доступно только при использовании типа Numeric.

• Null — запрет пустого (нулевого) значения поля.

Когда все поля структуры описаны, надо сохранить создан­ную структуру таблицы (пустую) на диске нажатием кнопки Ок. При этом на экран выводится сообщение «Input data record now?» (рис. 2.3).


 

 


Я

Index.

'tdth. -OeomelHULL

0! Fietkfc 8|le^h

Рис. 2.2. Описание структуры таблицы.

 

Table Designei

tj кеу_гаквг

Numeric

   

J key_cu$t

Numeric

   

key.setemn

Numenc

   

II кеу_Ьоок

Numeric

   

1 datejakez

Dale

 

 

1 1 vokme

Numeric

   

В РОС

Numeric

   

Heme


Гуре,,


E SPRIMERVzakaaOBF


 

;/ Microsoft Vi ual FosPro

Ри°‘2-3- Приглашение к заполнению данными созданной таблицы.


 

Е°ли наЖать кнопку No, то на диске, по указанному адресу, И1ет сохранена пустая структура таблицы. Если нажать кнопку - то на экран будет выведен пустой шаблон записи (рис. 2.4.) я занесения данных в созданной таблице.


ГИИ

iZakaz

Keyzakaz

>Ч_сш1 ■■ 1сз>_м1амп чву_Ьоок iale_zakaz/ / olume iPfOC

Tip^pplala______

Рис. 2.4. Шаблон для заполнения записи данными.

Рис. 2.5. Задание типа создаваемой таблицы


 


Данные в шаблон заносятся по правилам текстовых редакто­ров. По окончании ввода всех данных (всех записей), их надо сохранить на диске с помощью одной из команд: Ctrl + End или Qfj + W. Если данные сохранять не надо, то нажимают комби­нацию клавиш Ctrl + Q или клавишу Esc.

б. С помощью Главного меню.

Из Главного меню подать команду File -> New и в появившей­ся на экране диалоговой панели New (рис. 2.5) в радиогруппе File Туре выбрать кнопку Table, а затем нажать кнопку' New File.

Затем на экран выводится диалоговая панель Create, описанная выше. Описание структуры таблицы производится аналогично.

в. С помощью SQL-onepamopa.

Сокращенный формат SQL-оператора для создания таблицы имеет вид (подробнее см. главу 11):

CREATE TABLE <имя таблици> (<кмя поля1> <тип поля1> (<размер по­ля^) (, <нмя 1шля1> <тнп иатя!> (<размер паля1>),...])

2.2. ОТКРЫТИЕ ТАБЛИЦЫ

В FoxPro следует различать два понятия: открытие таблицы и предъявлени таблицы на экран. В каждый момент времени мо­жет быть открыто много таблиц (их количество определяется версией FoxPro). На экран предъявляется, как правило, одна таб­лица.

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

а. С помощью команд.

В окне Command надо подать команду USE <нмя_таблицы>. Это краткий вариант команды открытия таблицы. При этом со­держимое таблицы на экран не предъявляется. Для того чтобы определить, открыта таблица или нет, надо на экран вывести ста- ТУс-строку, в которой будет указано имя открытой таблицы. Ни- *с пРиведен полный формат команды USE с описанием назна- ения каждой опции. По мере изучения FoxPro будет ясен смысл назначение этих опций.

обозна^ И ДалСе ПРИ описании команд используются следующие

11 — если опция или параметр указаны в квадратных скобках, то они являются не обязательными.


| — ес.ш используется вертикальная черта, то надо сделать вы- бор опиии или параметра слева или справа от вертикаль, ной черты.

Полный формат команды:

USE Кичя табличного файла>] [IN <рабочая область>]

[AGAIN 1

[INDEX <сннсокимеинндексных_фаАлов>]

[ORDER [ <w.ip.N> | < I ОХ-файл> | TAG <нмя_тега>[ [OF <СОХ-фаил>] [ASCENDING | DESCENDING]

[ALLAS <псевдоннм>]

[NOUPDATE]

[EXCLUSIVE]

[SHARED]

Назначение опций:

IN — указывается номер рабочей области, в которой будет от крыта таблица. В Visual FoxPro допускается одновременное от крытис до 25 таблиц в разных рабочих областях. Рабочие области имеют порядковый номер от 1 до 25, но первые 10 рабочих обла­стей дополнительно имеют однобуквенные имена от А до J.

AGAIN — разрешает повторное открытие таблицы в другой рабо­чей области, но только в режиме просмотра (Read Only).

TNDEX — открывает одновременно с таблицей один или не­сколько индексных файлов, принадлежащих данной таблице.j Причем первый индексный файл в списке считается главным (текущим), если другой файл не определен в опции ORDER. ORDER — переназначает главный (текущий) индексный файл,1 путем указания его номера (<Bbip.N>) в <списке_имен_индекс* ных_файлов>. При необходимости можно указать тип индексно­го файла (IDX или CDX), а также имя тега (TAG).

ASCENDING или DESCENDING — задает порядок чтения ин­декса, соответственно по возрастанию и по убыванию. NOUPDATE — в открываемой таблице запрещены любые изме­нения (устанавливается режим Read Only).

EXCLUSIVE — открываемая таблица предназначена для личного использования при работе в локальной сети.

SHARED — открываемая таблица предназначена для общего ис пользования при работе в локальной сети.

Если команда USE используется без опций, то она закрывает

рсс таблицы.

б. С помощью Главного меню.

Aulor DBF

catalog DBF»]checkDBF Custcmer.dbt 0 FacaDBF 3lm.DBF

fcwtfwo: [~

!«•] mmmDBF wjOtDBF 5 salesmenDBF «*) salmen.DBF stieet dbf jjj] town.DBF

ЯI ableC. dbf)

рЙ* Г Только чтений

ж _ ’

c.

* gxdustve

Рис. 2.6. Задание имени открываемой таблицы.

anne-.JtJ "

w

1асто при написании программных кодов надо знать алиас ^нкретной таблицы. Функция ALIAS0 возвращает в символь- -м виде значение алиаса указанной таблицы.

(<имя рабочей областн> | <имя таблнцы>]

ели указанная рабочая область пуста, то функция ALIAS О катает пустое значение.

Из Главного меню подают команду File —► Open и на экран выводится диалоговая панель Open (рис. 2.6), где указывается имя таблицы и место се хранения.

50 Глава 2

2.3. РЕДАКТИРОВАНИЕ ТАБЛИЦЫ

Команда BROWSE выводит на экран окно BROWSE (рис. 2.7), куда помешает содержимое таблицы.

 

 

ГГЙ

 

V la Mi

i 1i 1

U№12,IOO "АгиепадоГ

!д12Л ]Ц12201ШЛ

1 ? 1

2l) 17X2X100 ,Вмч»»Г

л ЗА 3334411 3334411 «Г!

t 4

Йг1»:А0 Тиоцлжс*

ft2*jpil 123789' 1237®» |:

 

f...................... 1

i,

1. j 1

111-

 

 

Рис. 2.7. Окно BROWSE в режиме просмотра Browse с данными табли цы Customer.


 

:

Эта команда предоставляет широкие возможности для доступа к данным: просмотр, редактирование, добавление и удаление. А также позволяет создать виртуальные (вычисляемые) паля табли-; цы, то есть эти поля не являются частью базы данных, но могут быть функциями от физически существующих полей и отобража-; ются на экране как физические поля. Если позволяет оператив­ная память, то одновременно может быть открыто несколько окон BROWSE, в каждое из которых будет помещена своя табли ца. Количество одновременно открытых окон BROWSE также за' висит от версии FoxPro.

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

Полный формат команды BROWSE:

BROWSE (FIELDS <список имен полсй>(

[FONT <вырС1>,[<вырМ>] [STYLE <вырС2>Ц [FOR <BbipLl> [REST11 [FORMAT]

[FREEZE <имя поля>]

[KEY <выр1> [,<выр2>][

[LAST|NOINITJ [LEDIT] | [LOCK <BbipN2>[

ILPARTITION]

|NOAPPEND]

[NOCLLARl [NODELETE1 [NOFDITI NOMODI FV'J [NOFOLLOW]

[NOLGRID]

[NORGRID]

[NOLINK]

[NOMENU]

[NOOPTIMIZE]

[NORFFRESII]

[NORMAL]

[NOWAIT]

[PARTITION <BupN3>]

[PREFERENCE <вырСЗ>]

IREDIT]

[save]

[TIMEOUT <BupN4>]

[TITLE <вырС4>]

[VALID [:F] <buPL2>[ERROR <вырС5>]]

[VSTIEN <вырЫ>]

[WIDTH <BwpN5>]

[[WINDOW <имя «на 1>] [LN [WINDOW] <имя окна 2> | IN SCREEN ]] [COLOR [<спнсок nap цвегов>] | COLOR SCHEME <BwpN5>[

Назначение опций:

[FIELDS <список кмек полей>] — в списке перечисляются имена по- Лсй как Физических, так и виртуальных, которые будут отражены RRr?16 ®^OWSE. Виртуальные поля представляются в окне ROWSЕ только в режиме Read Only. Перечисление имен произ- Дится через запятую. После каждого имени поля, по желанию, ,!° Указать дополнительные параметры, управляющие пред­осеннем информации для данного поля.

:R —

| Устанавливает режим просмотра (редактировать нельзя). VbipN> — описывает ширину поля на экране.


:V <выр1> l:F] [:Е * <вырОЦ — обеспечивает помещение в поле достоверных данных. Если <выр1> истинно, то данные заносятся в поле. В противном случае — нет. В логическом выражении <выр1> может быть указано или правило, или ограничение (под­робнее см. теорию баз данных). По умолчанию контроль досто­верности данных производится в режиме редактирования. Если указать параметр:F, то контроль достоверности будет проводить­ся во всех режимах. Если используется параметр:Е, то на экран выводится заданное пользователем сообщение об ошибке — <вырО.

:Р = <вырО — задаст шаблон для ввода в поле только определен­ных символов. Шаблон представляет собой строку специальных символов. (Подробнее о создании шаблонов см. в разделе «Ко­манды ввода-вывода*.)

:В = <выр1>,<выр2> [:FJ — накладывает ограничение на вводи­мые в поле символы. <выр!>,<выр2> соответственно нижняя и верхняя границы допустимого диапазона.


Дата добавления: 2015-09-29; просмотров: 21 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.058 сек.)







<== предыдущая лекция | следующая лекция ==>