Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
1

Проектирование БД.

05.10.2011, 20:11. Показов 1118. Ответов 1
Метки нет (Все метки)

Ставится задача спроектировать базу данных для секретаря кегельной лиги небольшого городка, расположенного на Среднем Западе США. В ней секретарь будет хранить всю информацию, относящуюся к кегельной лиге, а средствами СУБД — формировать еженедельные отчеты о состоянии лиги. Специальный отчет предполагается формировать в конце сезона.
Секретарю понадобятся фамилии и имена членов лиги, их телефонные номера и адреса. Так как в лигу могут входить только жители городка, нет необходимости хранения для каждого игрока названия города и почтового индекса. Интерес представляют число очков, набранных каждым игроком в еженедельной серии из трех встреч, в которых он принял участие, и его текущая результативность (среднее число набираемых очков в одной встрече). Секретарю необходимо знать для каждого игрока название команды, за которую он выступает, и фамилию (и имя) капитана каждой команды. Помимо названия, секретарь планирует назначить каждой команде уникальный номер.
Исходные значения результативности каждого игрока необходимы как при определении в конце сезона достигшего наибольшего прогресса в лиге игрока, так и при вычислении гандикапа для каждого игрока на первую неделю нового сезона. Лучшая игра каждого игрока и лучшие серии потребуются при распределении призов в конце сезона.
Секретарь планирует включать в еженедельные отчеты информацию об общем числе набранных очков и общем числе проведенных игр каждым игроком, эта информация используется при вычислении их текущей результативности и текущего гандикапа. Используемый в лиге гандикап составляет 75% от разности между 200 и результативностью игрока, при этом отрицательный гандикап не допускается. Если результатом вычисления гандикапа является дробная величина, то она усекается. Перерасчет гандикапа осуществляется каждую неделю.
На каждую неделю каждой команде требуется назначать площадку, на которой она будет выступать. Эту информацию хранить в БД не нужно (соперники выступают на смежных площадках).
Наконец, в БД должна содержаться вся информация, необходимая для расчета положения команд. Команде засчитывается одна победа за каждую игру, в которой ей удалось набрать больше очков (выбить больше кеглей) (с учетом гандикапа), чем команде соперников. Точно так же команде засчитывается одно поражение за каждую встречу, в которой эта команда выбила меньшее количество кеглей, чем команда соперников. Команде также засчитывается одна победа (поражение) в случае, если по сравнению с командой соперников ею набрано больше (меньше) очков за три встречи, состоявшиеся на неделе. Таким образом, на каждой неделе разыгрывается 4 командных очка (побед или поражений). В случае ничейного результата каждая команда получает 1/2 победы и 1/2 поражения. В случае неявки более чем двух членов команды их команде автоматически засчитывается 4 поражения, а команде соперников — 4 победы. В общий результат команде, которой засчитана неявка, очки не прибавляются, даже если явившиеся игроки в этой встрече выступили, однако в индивидуальные показатели — число набранных очков и проведенных встреч — будут внесены соответствующие изменения. Написать запросы, осуществляющие следу-ющие операции:
1) Для указанного интервала дат показать список выступающих команд. Для каждой из них вывести состав и капитана команды.
2) Предоставить возможность добавления новой команды.
3) Вывести список игровых площадок с указанием количества проведенных игр на каждой их них.
4) Для указанного интервала дат вывести список игровых площадок с указанием списка игравших на них команд.
5) Предоставить возможность заполнения результатов игры двух команд на указан-ной площадке.
6) Вывести список площадок с указанием суммарной результативности игроков на каждой из них.

Вот условие, по которому следует спроектировать БД. Помогите определиться с количеством полей, необходимых для создания этой БД.
Мой вариант:
/Фамилия/Имя/Телефон/Адрес/Очки/Команда/Должность/Уникальный номер/Количество игр/Выигрыш/Ничья/Проигрыш/Дата матча/Арена
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2011, 20:11
Ответы с готовыми решениями:

Проектирование БД
Добрый день всем. Задали создать приложение на свободную тему с БД(MVS + MS Server), решил сделать...

Проектирование БД
Добрый день, господа! Сам я еще новичок в этом деле, поэтому прошу помощи в проектировании...

Проектирование БД
Добрый день! Лабораторную задали, она такая. Нужно спроектировать БД: в каждой квартире стоит...

Проектирование БД
Здравствуйте. Нужна помощь в проектировании БД под приложение. Задание такое: Система Приемная...

1
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
08.10.2011, 23:56  [ТС] 2
Вот пробую спроектировать. Первые наработки:

CREATE TABLE player
(
player_id INT NOT NULL identity(1,1) PRIMARY KEY,
family VARCHAR(20) NOT NULL,
name VARCHAR(20) NOT NULL,
last_name VARCHAR(20),
telephone int,
street VARCHAR(20) NULL,
house INT NULL,
flat INT NULL,
position VARCHAR(20) NOT NULL,
team_name VARCHAR(20) NOT NULL
);

CREATE TABLE team
(
team_id INT NOT NULL identity (1,1)PRIMARY KEY,
team_name varchar(20)
stadium varchar(20)
);

CREATE TABLE sostav
(
player_id INT NOT NULL identity (1,1)PRIMARY KEY,
team_id INT NOT NULL
);

CREATE TABLE stadium
(
stadium_id INT NOT NULL identity (1,1)PRIMARY KEY,
sort varchar(20),
capacity int not null
);

CREATE TABLE game
(
game_id INT NOT NULL identity (1,1)PRIMARY KEY,
stadium_id INT NOT NULL,
data DATE NOT NULL
);


CREATE TABLE gandicup
(
game_id INT NOT NULL identity (1,1)PRIMARY KEY,
gandicup_point INT NOT NULL
);


CREATE TABLE resultativnost
(
game_id INT NOT NULL identity (1,1)PRIMARY KEY,
player_id INT NOT NULL,
result_player INT NOT NULL
);

insert into player (player_id, family, name, last_name, telephone, street, house, flat,
position, team_name)
values
(1, 'Аббиати','Кристиано','Мартино', 2222, 'Виа Турати', 1, 10, 'Голкипер', 'Милан'),
(2, 'Неста','Алессандро','Винченцо', 2223, 'Виа Турати', 1, 11, 'Защитник', 'Милан'),
(3, 'Силва','Тиаго','Соуза', 2224, 'Виа Турати', 1, 12, 'Защитник', 'Милан'),
(4, 'Дзамбротта','Джанлука','Энрике', 2225, 'Виа Турати', 1, 13, 'Защитник', 'Милан'),
(5, 'Абате','Иньяцио','Аморузо', 2226, 'Виа Турати', 1, 14, 'Защитник', 'Милан'),
(6, 'Гаттузо','Дженнаро','Иван', 2227, 'Виа Турати', 1, 15, 'Полузащитник', 'Милан'),
(7, 'Амброзини','Массимо','Мантово', 2228, 'Виа Турати', 1, 16, 'Полузащитник', 'Милан'),
(8, 'Боатенг','Кевин','Принц', 2229, 'Виа Турати', 1, 17, 'Полузащитник', 'Милан'),
(9, 'Ночерино','Антонио','Моденне', 2230, 'Виа Турати', 1, 18, 'Полузащитник', 'Милан'),
(10, 'Пато','Алешандре','Мирель', 2231, 'Виа Турати', 1, 19, 'Нападающий', 'Милан'),
(11, 'Ибрагимович','Златан','Густаф', 2232, 'Виа Турати', 1, 20, 'Нападающий', 'Милан'),
(12, 'Сезар','Жулио','Витсель', 3222, 'Виа Манзони', 2, 10, 'Голкипер', 'Интер'),
(13, 'Дзанетти','Хавьер','Адельмар', 3223, 'Виа Манзони', 2, 11, 'Защитник', 'Интер'),
(14, 'Самуэль','Вальтер','Адриан', 3224, 'Виа Манзони', 2, 12, 'Защитник', 'Интер'),
(15, 'Киву','Кристиан','Родригу', 3225, 'Виа Манзони', 2, 13, 'Защитник', 'Интер'),
(16, 'Майкон','Дуглас','Рибейро', 3226, 'Виа Манзони', 2, 14, 'Защитник', 'Интер'),
(17, 'Камбьяссо','Эстебан','Матиас', 3227, 'Виа Манзони', 2, 15, 'Полузащитник', 'Интер'),
(18, 'Станкович','Деян','Лукас', 3228, 'Виа Манзони', 2, 16, 'Полузащитник', 'Интер'),
(19, 'Мотта','Тиаго','Эли', 3229, 'Виа Манзони', 2, 17, 'Полузащитник', 'Интер'),
(20, 'Снейдер','Уэсли','Вандер', 3230, 'Виа Манзони', 2, 18, 'Полузащитник', 'Интер'),
(21, 'Милито','Диего','Альберто', 3231, 'Виа Манзони', 2, 19, 'Нападающий', 'Интер'),
(22, 'Паццини','Джампаоло','Джуно', 3232, 'Виа Манзони', 2, 20, 'Нападающий', 'Интер'),
(23, 'Буффон','Джанлуиджи','Стефано', 4222, 'Виа Таранто', 3, 10, 'Голкипер', 'Ювентус'),
(24, 'Кьеллини','Джорджио','Марио', 4223, 'Виа Таранто', 3, 11, 'Защитник', 'Ювентус'),
(25, 'Бонуччи','Леонардо','Кабрера', 4224, 'Виа Таранто', 3, 12, 'Защитник', 'Ювентус'),
(26, 'Де Челье','Паоло','Риверо', 4225, 'Виа Таранто', 3, 13, 'Защитник', 'Ювентус'),
(27, 'Пепе','Симоне','Намо', 4226, 'Виа Таранто', 3, 14, 'Защитник', 'Ювентус'),
(28, 'Каморанези','Мауро','Диетро', 4227, 'Виа Таранто', 3, 15, 'Полузащитник', 'Ювентус'),
(29, 'Пирло','Андреа','Себастьяно', 4228, 'Виа Таранто', 3, 16, 'Полузащитник', 'Ювентус'),
(30, 'Маркизио','Клаудио','Мело', 4229, 'Виа Таранто', 3, 17, 'Полузащитник', 'Ювентус'),
(31, 'Красич','Милош','Чосич', 4230, 'Виа Таранто', 3, 18, 'Полузащитник', 'Ювентус'),
(32, 'Матри','Алессандро','Фабио', 4231, 'Виа Таранто', 3, 19, 'Нападающий', 'Ювентус'),
(33, 'Вучинич','Мирко','Артуро', 4232, 'Виа Таранто', 3, 20, 'Нападающий', 'Ювентус');

insert into team (team_id, team_name, stadium)
values
(1, 'Милан', 'Сан Сиро'),
(2, 'Интер', 'Джузеппе Меацца'),
(3, 'Ювентус', 'Стадио Олимпико');

insert into sostav (player_id, team_id)
values
(1,1),
(2,1),
(3,1),
(4,1),
(5,1),
(6,1),
(7,1),
(8,1),
(9,1),
(10,1),
(11,1),
(1,2),
(2,2),
(3,2),
(4,2),
(5,2),
(6,2),
(7,2),
(8,2),
(9,2),
(10,2),
(11,2),
(1,3),
(2,3),
(3,3),
(4,3),
(5,3),
(6,3),
(7,3),
(8,3),
(9,3),
(10,3),
(11,3);

insert into stadium (stadium_id, sort, capacity)
values
(1, 'закрытый', 85000),
(2, 'полузакрытый', 80000),
(3, 'открытый', 75000);

insert into game (game_id, stadium_id, data)
values
(1, 1, '25.07.2011'),
(2, 2, '26.07.2011'),
(3, 3, '27.07.2011');

insert into gandicup (game_id, gandicup_point)
values
(1, 3),
(2, 6),
(3, 9);

insert into resultativnost (game_id, player_id, result_player)
values
(1, 1, 0),
(1, 2, 0),
(1, 3, 0),
(1, 4, 0),
(1, 5, 0),
(1, 6, 0),
(1, 7, 0),
(1, 8, 0),
(1, 9, 0),
(1, 10, 1),
(1, 11, 1),
(1, 12, 0),
(1, 13, 0),
(1, 14, 0),
(1, 15, 0),
(1, 16, 0),
(1, 17, 0),
(1, 18, 0),
(1, 19, 0),
(1, 20, 1),
(1, 21, 0),
(1, 22, 0),
(2, 1, 0),
(2, 2, 0),
(2, 3, 1),
(2, 4, 0),
(2, 5, 0),
(2, 6, 0),
(2, 7, 0),
(2, 8, 0),
(2, 9, 0),
(2, 10, 0),
(2, 11, 2),
(2, 23, 0),
(2, 24, 0),
(2, 25, 0),
(2, 26, 0),
(2, 27, 0),
(2, 28, 0),
(2, 29, 1),
(2, 30, 0),
(2, 31, 0),
(2, 32, 0),
(2, 33, 0),
(3, 12, 0),
(3, 13, 0),
(3, 14, 0),
(3, 15, 0),
(3, 16, 1),
(3, 17, 0),
(3, 18, 0),
(3, 19, 0),
(3, 20, 0),
(3, 21, 0),
(3, 22, 1),
(3, 23, 0),
(3, 24, 0),
(3, 25, 0),
(3, 26, 0),
(3, 27, 1),
(3, 28, 0),
(3, 29, 0),
(3, 30, 0),
(3, 31, 1),
(3, 32, 0),
(3, 33, 0);


select * from player;
select * from team;
select * from sostav;
select * from stadium;
select * from game;
select * from gandicup;
select * from resultativnost;

помогите исправить недочеты.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2011, 23:56

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Проектирование БД
Здравствуйте! Разрабатываю БД, которая будет хранить информацию о стоматологии. (я новичок, прошу...

Проектирование БД
Никак не нарисую себе правильную модель. Вот у меня есть талцица с данными о товаре (у каждого...

Проектирование БД
Ребята,хочу бд спроектировать для риэлторской фирмы,знаний по бд нету и навыки программирования...

Проектирование БД
Две таблицы могут ли иметь две связи между собой ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.