Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2008, 15:14   #1
IIpopoK
Пользователь Подтвердите свой е-майл
 
Аватар для IIpopoK
 
Регистрация: 03.01.2008
Сообщений: 49
Вопрос Помогите с задачей (InterBase в Delphi)

Атрибуты:
fio - Фамилия и Инициалы.
god - Год рождения.
dolgn - Должность.
o_dolgn - Оклад по должности.
stag - Стаж работы.
d_stag - Надбавка за стаж(свыше 5, 10, 15, 20, 25, 30, 35, 40 лет).
u_zvan - Ученое звание (доцент, снс, мнс).
d_zvan - Надбавка за ученое звание.
zvanie - Воинское звание (лейтенант, ст. лейтенант, капитан, майор, подполковник, полковник).
d_zvanie - Надбавка за воинское звание.

Примечание:
Интересовался у преподавателя "нужно ли разбивать эти атрибуты на разные таблицы", его ответ "да конечно нужно!".

Задание:
  1. Спроектировать БД в соответствии со своим списком атрибутов.
  2. Создать БД.
  3. Занести в нее данные.
  4. Организовать постоянные связи между таблицами для обеспечения целостности БД при удалении, добавлении, изменении данных.
  5. Организовать запросы к БД, которые позволяли бы продемонстрировать:
  • Фамилию и должность сотрудника
  • Сумму денежного содержания и значения компонентов, из которых она формируется.
  • Сведения в запросе сортировать в порядке убывания денежного содержания, а при равном денежном содержании - в алфавитном порядке фамилий сотрудников.
  • Оформить отчет.
Заранее благодарю вас добрые люди за помощь!!!!!!
IIpopoK вне форума Ответить с цитированием
Старый 19.11.2008, 15:22   #2
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Чем конкретно помочь то?
slips вне форума Ответить с цитированием
Старый 19.11.2008, 15:25   #3
IIpopoK
Пользователь Подтвердите свой е-майл
 
Аватар для IIpopoK
 
Регистрация: 03.01.2008
Сообщений: 49
По умолчанию

Цитата:
Сообщение от slips Посмотреть сообщение
Чем конкретно помочь то?
# Спроектировать БД в соответствии со своим списком атрибутов.
# Создать БД.
# Занести в нее данные.
# Организовать постоянные связи между таблицами для обеспечения целостности БД при удалении, добавлении, изменении данных.


помогите сделать это!!
IIpopoK вне форума Ответить с цитированием
Старый 19.11.2008, 15:33   #4
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Не много ли? БД разбить на таблички можно так
Таблица сотрудник:
1. fio - Фамилия и Инициалы.
2. god - Год рождения.
3. dolgn - ФК на таблицу Должности
4. o_dolgn - Оклад по должности.
5. stag - Стаж работы.
6. d_stag - Надбавка за стаж(свыше 5, 10, 15, 20, 25, 30, 35, 40 лет).
7. u_zvan - ФК на таблицу Ученое звание
8. d_zvan - Надбавка за ученое звание.
9. zvanie - ФК на таблицу воинское звание
10. d_zvanie - Надбавка за воинское звание.

Таблица Должности:
1. ID
2. Наименование
3. Вес должности
Таблица Ученое звание:
1. ID
2. Наименование
Таблица Воинское звание:
1. ID
2. Наименование воиского звания
slips вне форума Ответить с цитированием
Старый 19.11.2008, 16:26   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Не соглашусь.
Вот структура таблиц:

- сотрудники
1. Id - идентификатор записи
2. fio - Фамилия и Инициалы.
3. god - Год рождения.
4. Id_dolgn - ссылка на идентификатор записи в таблице должностей.
5. Id_stag - ссылка на идентификатор записи в таблице надбавок за стаж.
6. Id_u_zvan - ссылка на идентификатор записи в таблице ученых званий.
7. Id_zvanie - ссылка на идентификатор записи в таблице воинских званий.

- таблица должностей:
1. Id_dolgn - идентификатор записи
2. dolgn - наименование должности по штату
3. o_dolgn - должностной оклад.

- таблица надбавок за стаж:
1. Id_stag - идентификатор записи
2. stag - величина стажа (5, 10, 15, 20, 25, 30, 35, 40 лет).
3. d_stag - надбавка за стаж

- таблица ученых званий:
1. Id_u_zvan - идентификатор записи
2. u_zvan - наименования ученых званий (доцент, снс, мнс...).
3. d_u_zvan - уровень надбавки за ученое звание в %.

- таблица воинских званий:
1. Id_v_zvan - идентификатор записи
2. v_zvan - наименования воинских званий (лейтенант, ст. лейтенант, капитан, майор, подполковник, полковник...).
3. d_v_zvan - уровень надбавки за воинское звание в %.
mihali4 вне форума Ответить с цитированием
Старый 22.11.2008, 11:35   #6
IIpopoK
Пользователь Подтвердите свой е-майл
 
Аватар для IIpopoK
 
Регистрация: 03.01.2008
Сообщений: 49
Восклицание

1. Спроектировать БД в соответствии со своим списком атрибутов.
2. Создать БД.
3. Занести в нее данные.
С этим разобрались...
Парни а как теперь поступить:
4. Организовать постоянные связи между таблицами для обеспечения целостности БД при удалении, добавлении, изменении данных.
А?? Помогите плиз!!!!
IIpopoK вне форума Ответить с цитированием
Старый 22.11.2008, 20:09   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Организовать постоянные связи между таблицами для обеспечения целостности БД при удалении, добавлении, изменении данных
Нужно только добавить триггер на удаление из подчиненных таблиц, а подчиненные - все таблицы, кроме таблицы сотрудников.
mihali4 вне форума Ответить с цитированием
Старый 24.12.2008, 16:36   #8
IIpopoK
Пользователь Подтвердите свой е-майл
 
Аватар для IIpopoK
 
Регистрация: 03.01.2008
Сообщений: 49
Восклицание

//Главная
create table sotrudniki(
Id integer not null primary key,
Id_dolgn integer not null,
Id_stag integer not null,
Id_u_zvan integer not null,
Id_zvanie integer not null,
fio varchar(50) not null,
god date not null,
primary key (Id, Id_dolgn, Id_stag, Id_u_zvan, Id_zvanie));

//Второстипенные
create table Dolgn(
Id_dolgn integer not null,
dolgn varchar(20),
o_dolgn integer,
constraint Ogr_Dolgn foreign key (Id_dolgn)
references sotrudniki (Id_dolgn));

create table Stag(
Id_stag integer not null,
stag varchar(30),
d_stag integer check(
d_stag=5 OR d_stag=10 OR
d_stag=15 OR d_stag=20 OR
d_stag=25 OR d_stag=30 OR
d_stag=35 OR d_stag=40),
constraint Ogr_Stag foreign key (Id_stag)
references sotrudniki (Id_stag));

create table Zvaniya(
Id_u_zvan integer not null,
d_u_zvan integer not null,
u_zvan varchar(6),
constraint Ogr_Po_U_zvaniyam check((u_zvan='Доцент') OR (u_zvan='снс') OR (u_zvan='мнс')),
constraint Ogr_Zvaniya foreign key (Id_u_zvan)
references sotrudniki (Id_u_zvan));

create table V_Zvaniya(
Id_v_zvan integer not null,
d_v_zvan integer not null,
v_zvan varchar(15),
constraint Ogr_Po_V_zvaniyam check(
(v_zvan='Лейтенант') OR (v_zvan='Старший лейтинант')OR
(v_zvan='Капитан') OR (v_zvan='Майор') OR
(v_zvan='Подполковник') OR (v_zvan='Полковник')),
constraint Ogr_V_Zvaniya foreign key (Id_v_zvan)
references sotrudniki (Id_v_zvan));

//При попытке запустить код "Второстипенные" Пишет ошибку:

Unsuccessful metadata update
could not find UNIQUE INDEX with specified columns
Statement: create table Dolgn(
Id_dolgn integer not null,
dolgn varchar(20),
o_dolgn integer,
constraint Ogr_Dolgn foreign key (Id_dolgn)
references sotrudniki (Id_dolgn))

---------
В чем проблема? что-то я не соображаю
IIpopoK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачей на Delphi Ленивица Помощь студентам 3 03.11.2008 19:32
Помогите Delphi + Interbase tarakan1983 Помощь студентам 1 01.11.2008 11:55
Помогите с задачей по Delphi Asterix Фриланс 4 24.04.2008 20:11
помогите с задачей на Delphi Soilwork Помощь студентам 7 23.04.2008 19:07
помогите с задачей на Delphi lyonya0111 Помощь студентам 11 22.04.2008 17:35