Автор: Пользователь скрыл имя, 09 Ноября 2010 в 20:13, курсовая работа
Проектирование БД представляет собой сложный трудоемкий процесс отображения предметной области во внутреннюю модель данных. В процессе проектирования разрабатывается модели разных уровней архитектуры БД, проверяется возможность отображения объектов одной модели объектами другой модели.
Введение 3
Инфологическое проектирование 5
Описание предметной области 5
Описание информационных потребностей пользователей 5
Построение инфологической модели 6
Даталогическое проектирование 7
Выбор и характеристика СУБД 7
Построение даталогической модели 9
Создание базы данных 11
Заполнение БД 12
Запросы к БД 14
Заключение 17
Список использованной литературы 18
VARCHAR(n) - символьная строка переменной длины, не превышающей n символов (n>0 и разное в разных СУБД, но не меньше 4096);
DATE - дата в формате, определяемом специальной командой (по умолчанию mm/dd/yy); поля даты могут содержать только реальные даты, начинающиеся за несколько тысячелетий до н.э. и ограниченные пятым-десятым тысячелетием н.э.;
DOUBLE PRECISION - для научных вычислений 15 цифр точности.
NUMERIC (p.s) - численные значения содержат цифры от 0 до 9 и необязательные знак и десятичную точку.
Поэтому при проектировании БД выбор остановился на СУБД InterBase 6.0, как СУБД поддерживающей все основные выше перечисленные функции. Помимо этого InterBase 6.0 имеет следующие характеристики:
Сервер
InterBase реализует архитектуру
Сервер InterBase добавляет многопотоковую архитектуру к MGA, улучшая производительность и оптимизируя использование системных ресурсов, особенно при большом числе пользователей. Многопотоковая архитектура обеспечивает разделяемый кэш данных, сокращая число дисковых операций ввода-вывода для каждого запроса в приложении. Разделяемый кэш метаданных на сервере сокращает стоимость компиляции для запросов и делает выполнение хранимых процедур и триггеров более эффективным. Статистика по пользователям и по базе данных, хранимая сервером, полезна при диагностике критических точек производительности приложения.
Многим приложениям (мультимедиа, научные, интернет – приложения), требуется возможность обработки неструктурированных данных. InterBase является первой реляционной базой данных, удовлетворившей это требование с помощью BLOB. Использование BLOB позволяет сохранять в базе данных аудио-, видео-, графическую и бинарную информацию. В современных приложениях фильтры BLOB используются для сжатия и трансформации данных. Разработка приложений и улучшенная производительность для научных приложений поддерживаются многомерными типами данных InterBase, обеспечивающими хранение до 16 измерений в одном поле базы данных.
Сигнализаторы
событий оповещают «
Компактность ядра InterBase экономит драгоценное дисковое пространство для его последующего использования критически важными бизнес-приложениями. InterBase так же обеспечивает производительность, сравнимую с конкурирующими базами данных, при меньших требованиях к оперативной памяти для дополнительной экономии на стоимости памяти. Развертывание сервера состоит из одного исполняемого файла и представляет собой простой машинный процесс, что упрощает инсталляцию даже заказных приложений.
InterBase
придерживается строгого
2.2. Построение даталогической
модели
На этом этапе необходимо установить соответствие между сущностями и характеристиками предметной области и отношениями и атрибутами в InterBase 6.0. Для этого нужно каждой сущности и характеристикам поставить в соответствие набор отношений (таблиц) и их атрибутов (полей).
Ключ
– это минимальный набор
Таблица
соответствий названий сущностей.
Сущность | Соответствие |
Команда | Team |
Члены команды | Ludi |
Матчи | Matchi |
Тренер | Trener |
Чемпионат | Chemp |
Работает | Work1 |
Позиция | Pozitziya |
Таблица
соответствий названий полей.
Атрибуты | Соответствие |
Фамилия | Famil |
Имя | Imya |
Отчество | Otchestvo |
Телефон | Tel |
Команда 1 | Komanda_1 |
Команда 2 | Komanda_2 |
Очки 1 | ochki_1 |
Очки 2 | ochki_2 |
Время | Vremya |
Вид чемпионата | Vid_chemp |
Год оснавания | God_osn |
Город | Gorod |
Страна | Strana |
Тренеровочные базы | Basi |
Адрес | Adres |
Название | Nazvanie |
Дата начала | Data_nachala |
Дата_конца | Data_konza |
Рисунок
2. Даталогическая модель.
2.3.
Создание базы данных.
Создание
таблиц:
Таблица «Чемпионат»:
CREATE
TABLE "CHEMP" ( "KOD_CHEMP" INTEGER NOT NULL,
"VID_CHEMP" VARCHAR(20), "VREMYA" DATE, PRIMARY
KEY ("KOD_CHEMP"));
Таблица «Члены команды»:
CREATE TABLE "LUDI" ("KOD_CHEL" INTEGER NOT NULL, "FAMIL" VARCHAR(20), "IMYA" VARCHAR(20), "OTCHESTVO" VARCHAR(20), "TEL" VARCHAR(20), "KOD_KOMANDI" INTEGER NOT NULL, "NOMER" INTEGER NOT NULL);
ALTER TABLE "LUDI" ADD FOREIGN KEY ("KOD_KOMANDI") REFERENCES TEAM ("KOD_KOMANDI");
ALTER TABLE "LUDI"
ADD FOREIGN KEY ("KOD_KOMANDI") REFERENCES TEAM ("KOD_KOMANDI");
Таблица «Матчи»:
CREATE TABLE "MATCHI" ("KOD_K1" INTEGER NOT NULL, "KOD_K2" INTEGER, "OCHKI_1" INTEGER, "OCHKI_2" INTEGER, "KOMANDA_1" VARCHAR(20), "KOMANDA_2" VARCHAR(20), "KOD_KOMANDI" INTEGER NOT NULL, "VREMYA" DATE, "KOD_CHEMP" INTEGER NOT NULL, PRIMARY KEY ("KOD_KOMANDI", "KOD_CHEMP"));
ALTER TABLE "MATCHI" ADD FOREIGN KEY ("KOD_CHEMP") REFERENCES CHEMP ("KOD_CHEMP");
ALTER TABLE "MATCHI" ADD FOREIGN KEY ("KOD_K1") REFERENCES TEAM ("KOD_KOMANDI");
ALTER TABLE "MATCHI"
ADD FOREIGN KEY ("KOD_K2") REFERENCES TEAM ("KOD_KOMANDI");
Таблица «Work1»:
CREATE TABLE "WORK1"
("KOD_KOMANDI" INTEGER NOT NULL, "KOD_TRENERA" INTEGER
NOT NULL, PRIMARY KEY ("KOD_KOMANDI", "KOD_TRENERA"));
Таблица «Команда».
CREATE
TABLE "TEAM" ("KOD_KOMANDI" INTEGER NOT NULL, "STRANA"
VARCHAR(20), "GOROD" VARCHAR(20), "GOD_OSN" DATE,
"NAZVANIE" VARCHAR(20), PRIMARY KEY ("KOD_KOMANDI"));
Таблица «Тренеры».
CREATE
TABLE "TRENER" ("KOD_TRENERA" INTEGER NOT NULL, "FAMIL"
VARCHAR(20), "IMYA" VARCHAR(20), "OTCHESTVO" VARCHAR(20),
"TEL" VARCHAR(20), "ADRES" VARCHAR(20), PRIMARY KEY
("KOD_TRENERA"));
Таблица «Позиция».
CREATE TABLE "POZITZIYA" ( "KOD_POZITZII" INTEGER NOT NULL,
"POZITZIYA" VARCHAR(20),
PRIMARY KEY ("KOD_POZITZII"));
2.4.
Заполнение БД
Таблица «Чемпионат».
Таблица «Члены команд».
Таблица «Матчи».
Таблица «Команда».
Таблица «Тренер».
Таблица «Work1».
2.5.
Запросы к БД
I. Однотабличные
запросы:
1. Выводит всех футболистов у кого первая буква фамилии находится в промежутке от "А" до "Г":
select famil from ludi where famil >='А' and famil < 'Г';
2. Выводит всех тренеров у кого первая буква фамилии находится в промежутке от "А" до "Р":
select famil from trener where famil >='А' and famil < 'Р';
3. Выдает всех игроков команды Локомотив:
select famil, imya, otchestvo from ludi where kod_komandi=1;
II. Многотабличные
запросы:
1 .Выводит тренеров каждой команды:
select nazvanie, famil from
team, trener, work1 where team.kod_komandi=work1.kod_
2. Выводит таблицу игр всех чемпионатов:
select vid_chemp, komanda_1,komanda_2,ochki_1,
3. Выводит футболистов, кто играет в каком клубе:
select famil, nazvanie from
ludi, team where team.kod_komandi=ludi.kod_
………………………………………….
…………………………………………..
III. С использованием
функций и вычисляемых значений:
1. Вычисляет количество играков команды Локомотв:
select count(*) kod_chel from ludi where kod_komandi=1;
2. Выводит команду основанную раньше всех: