|
Задание №1
Если в таблице A существует внешний ключ FK_B (может быть пустым), ссылающийся на таблицу B (в таблице B первичный ключ состоит из двух полей), то можно утверждать следующее (выберите верные ответы; напишите подробное пояснение к каждому пункту):
FK_B состоит из двух полей | |
Связь между A и B - многие к одному | |
Связь между A и B – один к одному, если первичный ключ таблицы B полностью совпадает с KF_B | |
Связь между A и B - один ко многим | |
Перед вводом данных в таблицу B таблица A уже должна быть заполнена | |
Перед удалением записи из A, имеющей связанные записи в B, необходимо удалить эти записи из B | |
В СУБД sql server (и во многих других СУБД) нельзя настроить связь между таблицами таким образом, что удаление записи из A, имеющей связанные записи в B, приведет к автоматическому удалению таких записей из B | |
Записи в B не могут существовать без записей в A | |
Перед вводом данных в таблицу A таблица B уже должна быть заполнена |
Задание №2
· разработайте базу данных в Access
· выполните экспорт в sql server
· исправьте типы, ключи, связи. Создайте диаграмму в sql server management studio
· cгенерируйте скрипт, содержащий sql-код для создания таблиц и для вставки данных
Подготовил: к.т., доцент Герасимов Н.А.
Задание:
Разработать базу данных для учета рабочего времени сотрудников предприятия и начисления зарплаты. Предприятие состоит из нескольких цехов и на нем работают сотрудники разной квалификации. Оплата идет в зависимости от тарифа квалификации сотрудника и количества отработанного им времени в цеху (Оплата=Тариф*ОтрВремя). Учет отработанного времени сотрудниками ведется в отдельном журнале (Табель учета). В конце каждого месяца составляется Ведомость начисления зарплаты.
Что надо сделать:
1. Создать таблицы:
Таблица 1. Справочник работников
Структура таблицы: Табельный номер, Фамилия И. О., Разряд, Цех
Таблица 2. Справочник тарифов
Структура таблицы: Разряд, Тариф (руб./час.)
Таблица 3. Табель учета отработанного времени
Структура таблицы: Табельный номер, Отработанное время в часах, Номер месяца
Структура таблицы: Месяц, Цех, Табельный номер. Фамилия И. О., Отработанное время, Тариф, Начислено (руб.)
2. Ввести
в таблицу 1 сведения о 15-ти работниках из трех цехов,
в таблицу 2 данные по пяти разрядам.
ввести данные о 15 рабочих за один месяц в таблицу 3.
Этапы разработки:
Выделяем сущности: Сотрудники (Employee), Тарифы (Referents rates), Табель учета отработанного времени (Timesheet hours worked)
Разработка таблиц:
Таблица 1 Сотрудник (Employee) | |||||
Табельный номер | Фамилия | Имя | Отчество | Разряд | Цех |
NUM_E | LAST_NAME | FIRST_NAME | OTCH | CLASS | DEP |
Число, целое/ ключ | Текст, 30 | Текст, 30 | Текст, 30 | Число, целое | Число, целое |
INT PK | CHAR(30) | CHAR(30) | CHAR(30) | INT | INT |
Замечание: PK - Primary Key (Первичный ключ)
Таблица 2. Справочник тарифов (Ref_rates) | |
Разряд | Тариф(руб/час) |
CLASS | TARIFF |
Число, целое/ключ | Число, одинарное с пл.точкой |
INT PK | FLOAT |
Таблица 3. Табель учета отработанного времени (Timesheet) | |||
Номер записи | Табельный номер | Отработанное время в часах | Номер месяца |
Число, целое | Число, целое | Целое | Целое |
NUM_T | NUM_T | HOUR_W | NUM_M |
INT PK | INT | INT | INT |
Войти в Access и создать новую Базу данных Work (Работа):
Файл-> Создать новую базу-> Задать имя и место расположения базы.
Затем войти в режим Таблицы и с помощью Конструктора создать таблицы (1-3).
Создание таблицы Employee
Создание таблицы Ref_rates (Тарифы)
Создание таблицы TimeSheet (Ведомость учета отработанного времени)
Следует принять во внимание следующие бизнес-правила:
- Тарифы могут присутствовать у разных Сотрудников (связь 1:М)
- Сотрудники могут быть зарегистрированы в журнале учета отработанного времени (связь 1:М)
Связи отражают следующие бизнес-правила (отношения):
· Сотрудник (Employee) может много раз быть отмечен в Журнале (TimeSheet) – связь типа 1: М («один-ко-многим»);
· Тариф (Ref_rates) может быть у многих сотрудников (Employee) – связь типа 1: М («один-ко-многим»).
Таблица1 Ref_rates
Разряд | Тариф |
20,50 | |
30,45 | |
45,20 | |
60,15 | |
70,10 | |
100.00 |
Таблица 2 Employee
Табельный номер | Фамилия | Имя | Отчество | Разряд | Цех |
Иванов | Петр | Семенович | |||
Сидоров | Василий | Иванович | |||
Трофимов | Константин | Анатольевич | |||
Курочкин | Александр | Петрович | |||
Баранов | Семен | Семенович | |||
Волков | Павел | Леонидович |
Таблица 3. Табель учета отработанного времени (Timesheet)
Номер записи в журнал | Табельный номер | Номер месяца | Отработ. Время (в час) |
5. Выполните экспорт каждой таблицы в БД на основе sql server
Создайте пустую базу данных в MS Sql Server 2012/2014
Выполните экспорт. Во время экспорта первой таблицы создайте источник ODBC (если он еще не был создан)
6. Задайте ключи, проведите связи в дизайнере диаграмм в sql server management studio
Проверьте настройки счётчиков (спецификация идентификатора; identity(1,1))
7. Настройте связи таким образом, чтобы можно было удалить работника одновременно с записями в таблице Timesheet
Дата добавления: 2015-11-04; просмотров: 40 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
3.3. Применение логических законов и правил | | | Если в таблице A существует внешний ключ FK_B (может быть пустым), ссылающийся на таблицу B (в таблице B первичный ключ состоит из двух полей), то можно утверждать следующее (выберите верные ответы; |