Автор: Пользователь скрыл имя, 02 Декабря 2010 в 00:32, курсовая работа
База данных определяется как совокупность взаимосвязанных данных, характеризующихся возможностью использования для большого количества приложений, возможностью быстрого получения и модификации необходимой информации, минимальной избыточностью информации, независимостью от прикладных программ, общим управляемым способом поиска.
Введение………………………………………………………………………………стр. 3
1 Обследование предметной области………………………………………………стр. 4
2 Концептуальное проектирование. ……………………………………………….стр. 5
2.1 Перечень сущностей (обосновать список). …………………………….стр. 5
2.2 Перечень атрибутов. ……………………………………………………..стр. 5
3 Инфологическое проектирование БД. …………………………………………...стр. 7
3.1 Модель “сущность-связь”.……………………………………………….стр. 7
3.2 Классификация связей. …………………………………………………..стр. 9
4 Реляционная модель БД. …………………………………………………..стр. 9
4.1 Функциональные зависимости между атрибутами. …………………...стр. 9
4.2 Выбор ключей. ………………………………………………………….стр. 11
4.3 Нормализация отношений. ……………………………………………..стр. 13
5 Даталогическое проектирование БД. …………………………………………..стр. 14
5.1 Состав таблиц БД. ……………………………………………………….стр. 14
5.2 Поддержание целостности. ……………………………………………..стр. 16
6 Запросы к БД. …………………………………………………………………….стр. 17
7 Разработка механизмов защиты данных от несанкционированного доступа...стр.19
8 Требования к техническому обеспечению. …………………………………….стр. 20
9 Инструкция по использованию БД. …………………………………………….стр. 21
9.1 Вызов программы. ……………………………………………………….стр. 21
9.2 Описание отчетов. ……………………………………………………….стр. 27
Заключение………………………………………………………………………….стр. 28
Список использованной литературы………………………………………………стр. 29
Наименование атрибутов | Типы полей | Размер полей | Ограничения |
код_кл | Integer | 4 | NOT NULL |
наимен | Character | 20 | |
адрес | Character | 30 | |
тел | Character | 12 | |
факс | Character | 12 | |
e_mail | Character | 20 |
Таблица
5.1.2 «клиенты»
Наименование атрибутов | Типы полей | Размер полей | Ограничения |
код_пост | Integer | 4 | NOT NULL |
наимен | Character | 20 | |
адрес | Character | 30 | |
тел | Character | 12 | |
факс | Character | 12 | |
e_mail | Character | 20 |
Таблица
5.1.3 «поставщ»
Наименование атрибутов | Типы полей | Размер полей | Ограничения |
код_опер_реал | Integer | 4 | NOT NULL |
дата | Data | 8 | |
Номер_двиг | Integer | 10 | NOT NULL |
код_кл | Character | 4 | NOT NULL |
Таблица
5.1.4 «журнал_реализ»
Наименование атрибутов | Типы полей | Размер полей | Ограничения |
код_опер_п | Integer | 4 | NOT NULL |
дата | Data | 8 | |
номер_двиг | Integer | 4 | NOT NULL |
Код_пост | Integer | 4 | NOT NULL |
Таблица
5.1.5 «журнал_постав»
Целостность данных является одним из самых важных требований, предъявляемых к базам данных. Целостность (от англ. integrity – нетронутость, неприкосновенность, сохранность, целостность) – понимается как правильность данных в любой момент времени. Но эта цель может быть достигнута лишь в определенных пределах: СУБД не может контролировать правильность каждого отдельного значения, вводимого в базу данных (хотя каждое значение можно проверить на правдоподобность). Поддержание целостности базы данных может рассматриваться как защита данных от неверных изменений. Современные СУБД имеют ряд средств для обеспечения поддержки целостности (так же, как и средств обеспечения поддержания безопасности).
Выделяют три группы правил целостности:
Для
определения условий
В
данном курсовом проекте были выставлены
условия целостности по ссылкам,
представленные на рис. 5.2.1.
Рис.
5.2.1 Построитель ссылочной
При изменении данных в родительской таблице они изменяются и в дочерней.
При удалении данных из родительской таблицы они удаляются и в дочерней.
Допустима вставка.
При изменении данных в родительской таблице они изменяются и в дочерней.
При удалении данных из родительской таблицы они удаляются и в дочерней.
Допустима вставка.
При изменении данных в родительской таблице они изменяются и в дочерней.
При удалении данных из родительской таблицы они удаляются и в дочерней.
Допустима вставка.
При изменении данных в родительской таблице они изменяются и в дочерней.
При удалении данных из родительской таблицы они удаляются и в дочерней.
Целостность по сущностям ограничивает возможные значения ключей:
В данном курсовом проекте была создана следующая целостность, определяемая пользователем:
Запрос представляет команду, которые обращаются к базе данных и сообщает ей, чтобы она отобразила определенную информацию из таблиц.
В данной работе все запросы написаны с помощью языка SQL. Которые состоят из одиночной команды SELECT с достаточно простой структурой, однако, путем ее использования можно выполнить сложную обработку данных.
В разработанной базе данных предусмотрены следующие запросы:
Запросы на языке SQL
SELECT *FROM " авто "
if thisform.optiongroup1.option1.
SELECT MAX((цена)) FROM авто
endif
if thisform.optiongroup1.option2.
SELECT MIN((цена)) FROM авто
endif
if thisform.optiongroup1.option3.
SELECT AVG((цена)) FROM авто
ENDIF
thisform.grid1.recordsource=0
SELECT * FROM "авто";
into cursor temp;
WHERE цена between VAL(ThisForm.Text2.value) AND VAL(ThisForm.Text3.value)
thisform.grid1.recordsource = "temp"
ThisForm.text2.value=""
ThisForm.text3.value=""
thisform.grid1.recordsource = 0
SELECT * FROM "журнал_постав"into cursor temp;
WHERE код_пост IN (VAL(ThisForm.Text3.value))
thisform.grid1.recordsource = "temp"
ThisForm.text3.value=""
thisform.grid1.recordsource=0
SELECT *FROM "авто"
WHERE модель=alltrim(thisform.text5.
into cursor temp
thisform.grid1.recordsource="
ThisForm.text5.value=""
thisform.grid1.recordsource=0
PUBLIC a, b
a = ALLTRIM(thisform.combo1.Value)
b = ALLTRIM(thisform.combo2.value)
if(a=" " and b=" ")
MESSAGEBOX("Введите дату для поиска", 0+48+0, " ")
ELSE
SELECT журнал_постав.код_опер_пост, журнал_постав.дата, журнал_постав.номер_двиг, журнал_постав.код_пост from "журнал_постав" into cursor temp;
WHERE дата between CTOD(a) AND CTOD(b)
thisform.grid1.recordsource = "temp"
ThisForm.combo1.value=""
ThisForm.combo2.value=""
endif;
thisform.grid1.recordsource=0
SELECT авто.модель, авто.цвет, авто.цена, авто.номер_двиг FROM "авто" into cursor temp;
WHERE EXISTS(SELECT *FROM "журнал_постав"
WHERE журнал_постав.номер_двиг=авто.
thisform.grid1.recordsource="
ThisForm.text4.value=""
thisform.grid1.recordsource = 0
SELECT Клиенты.наимен,
Клиенты.адрес, Клиенты.тел,
FROM ;
data1!клиенты ;
INNER JOIN data1!журнал_реализ ;
ON Клиенты.код_кл = Журнал_реализ.код_кл;
into cursor temp;
WHERE Журнал_реализ.код_опер_реал = VAL(ThisForm.text6.value)