Создание многотабличной реляционной базы данных
Рассмотрим пример, который показывает процесс создания многотабличной базы данных. Скажем, вы только что основали VetLab – клиническую микробиологическую лабораторию, где проводятся анализы проб, присланных из ветеринарных фирм. Конечно, вам бы хотелось иметь данные:
- о клиентах;
- о выполненных анализах;
- о сотрудниках;
- о заказах;
- о результатах.
У каждого их этих объектов имеются связанные между собой атрибуты. Для клиента такие атрибуты – название, адрес и другая информация для контакта. Для анализа – название и стандартная оплата. Для каждого сотрудника – его адрес, телефон, должность, квалификация и уровень оплаты. О заказе необходимо знать, кто его заказчик, когда заказ был оформлен и какой именно анализ в нем указан. А что касается результатов анализов, то необходимо знать данные, полученные при его проведении, был ли анализ предварительным или окончательным, а также номер его заказа.
Действие 3: точное определение таблиц.
Теперь для каждого объекта вам необходимо точно определить таблицу, а для каждого атрибута – столбец. В табл. 5.1 показаны таблицы базы данных VetLab.
Таблица 5.1. Таблицы базы данных VetLab.
Таблица | Столбцы |
---|---|
CLIENT (фирма-клиент) | Client Name (название фирмы-клиента) |
Address 1 (адрес 1) | |
Address 2 (адрес 2) | |
City (город) | |
State (штат) | |
Postal Code (почтовый код) | |
Phone (телефон) | |
Fax (факс) | |
Contact Person (контактный представитель) | |
TESTS (анализы) | Test Name (название анализа) |
Standard charge (стандартная цена) | |
EMPLOYEE (сотрудник) | Employee Name (фамилия сотрудника) |
Address 1 (адрес 1) | |
Address 2 (адрес 2) | |
City (город) | |
State (штат) | |
Postal Code (почтовый код) | |
Home Phone (домашний телефон) | |
Office Extension (телефонный номер в офисе) | |
Hire Date (дата приема на работу) | |
Job classification (трудовая классификация) | |
Hourly/Salary/Commission (почасовая оплата/зарплата/комиссионные) | |
ORDERS (заказы) | Order Number (номер заказа) |
Client Name (название фирмы-клиента) | |
Test ordered (заказанный анализ) | |
Responsible Salesperson (сотрудник, принявший заказ) | |
Order Date (дата заказа) | |
RESULTS (результаты) | Result Number (номер результата) |
Order Number (номер заказа) | |
Result (результат) | |
Date Reported (сообщенная дата) | |
Preliminary / Final (предварительный/окончательный) |