Разработка СУБД "Японские автомобили"

Автор: Пользователь скрыл имя, 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

Файлы: 1 файл

Теоретическая часть.docx

— 1.59 Мб (Скачать)
Наименование  атрибутов Типы полей Размер полей Ограничения
     код_кл      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 «журнал_постав» 

    1.   Поддержание целостности

     Целостность данных является одним из самых важных требований, предъявляемых к базам  данных. Целостность (от англ. integrity – нетронутость, неприкосновенность, сохранность, целостность) – понимается как правильность данных в любой момент времени. Но эта цель может быть достигнута лишь в определенных пределах: СУБД не может контролировать правильность каждого отдельного значения, вводимого в базу данных (хотя каждое значение можно проверить на правдоподобность). Поддержание целостности базы данных может рассматриваться как защита данных от неверных изменений. Современные СУБД имеют ряд средств для обеспечения поддержки целостности (так же, как и средств обеспечения поддержания безопасности).

     Выделяют  три группы правил целостности:

  1. целостность по сущностям;
  2. целостность по ссылкам;
  3. целостность, определяемая пользователем.

     Для определения условий целостности  данных в БД могут быть использованы установленные отношения между  таблицами. Для этого в проекте  для определения условий целостности  было использовано окно построителя  целостности данных Referential Integrity Builder, в котором указаны параметры целостности. Для всех отношений был использован идентичный набор правил целостности:

  1. Модификация: Cascade – при изменении значений полей первичного ключа в родительской таблице автоматически осуществляется каскадное изменения всех соответствующих значений в дочерней таблице (необходимо для сохранения связи между определенными записями и возможности их изменения);
  2. Удаление: Restrict – запрещает удаление значений полей первичного ключа в родительской таблице, если в дочерней таблице имеются связанные записи (необходимо для сохранения сведений об объектах, которые являются атрибутами других сущностей);
    1. Добавление: Ignore – разрешается вставка записей.

     В данном курсовом проекте были выставлены условия целостности по ссылкам, представленные на рис. 5.2.1. 
 
 
 
 
 

     

     Рис. 5.2.1 Построитель ссылочной целостности 

    1. авто : журнал_реализ
    • При модификации cascade

    При изменении  данных в родительской таблице они  изменяются и  в дочерней.

    • При удалении cascade

    При удалении данных из родительской таблицы они  удаляются и в дочерней.

    • При вводе данных ignore

    Допустима вставка.

    1. авто : журнал_постав
    • При модификации cascade

    При изменении  данных в родительской таблице они  изменяются и  в дочерней.

    • При удалении cascade

    При удалении данных из родительской таблицы они  удаляются и  в дочерней.

    • При вводе данных ignore

    Допустима вставка.

    1. клиенты: журнал_реализ
      1. При модификации cascade

    При изменении  данных в родительской таблице они  изменяются и  в дочерней.

      1. При удалении cascade

    При удалении данных из родительской таблицы они  удаляются и в дочерней.

      1. При вводе данных ignore

    Допустима вставка.

    1. поставщ: журнал_постав
      1. При модификации cascade

    При изменении  данных в родительской таблице они  изменяются и  в дочерней.

      1. При удалении cascade

    При удалении данных из родительской таблицы они  удаляются и в дочерней.

      1. При вводе данных ignore.

     Целостность по сущностям ограничивает возможные  значения ключей:

    1. первичный ключ не может принимать неопределенные значения
    2. не может быть разных строк с одинаковым первичным ключом.

     В данном курсовом проекте была создана  следующая целостность, определяемая пользователем:

    1. Ограничение на введенную дата: при попытке пользователя ввести дату, которая еще не наступила, будет выведено сообщение: "дата не может быть из будущего!"
    2. Ограничения на введенную цену: при попытке ввести отрицательную стоимость товара, либо стоимость, равную нулю, будет выведено сообщение: "цена автомобиля не должна быть меньше или равна нулю".
 
        1. Запросы к БД

     Запрос представляет команду,  которые обращаются к базе  данных и сообщает ей, чтобы  она отобразила определенную  информацию из таблиц.

     В данной работе все запросы   написаны с помощью языка   SQL. Которые состоят из одиночной команды SELECT  с достаточно простой структурой, однако, путем ее использования можно выполнить сложную обработку данных.

      В разработанной базе данных предусмотрены следующие запросы:

    Запросы на языке SQL

  1. Безусловная выборка значений

    SELECT *FROM " авто "

  1. Выборка вычисляемых значений

if thisform.optiongroup1.option1.value==1

SELECT MAX((цена)) FROM авто

endif

if thisform.optiongroup1.option2.value==1

SELECT MIN((цена)) FROM авто

endif

if thisform.optiongroup1.option3.value==1

SELECT AVG((цена)) FROM авто

ENDIF

  1. Выборка с использованием оператора BETWEEN

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=""    

  1. Выборка с использованием оператора IN

thisform.grid1.recordsource = 0

SELECT * FROM "журнал_постав"into cursor temp;

WHERE код_пост IN  (VAL(ThisForm.Text3.value))

thisform.grid1.recordsource = "temp"

ThisForm.text3.value=""

     

  1. Выборка с использованием шаблонов

thisform.grid1.recordsource=0

SELECT *FROM "авто" WHERE модель=alltrim(thisform.text5.value);

into cursor temp

thisform.grid1.recordsource="temp"

ThisForm.text5.value="" 

  1.   Запрос по дате

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; 

  1. Использование квантора существования  в запросах

thisform.grid1.recordsource=0

SELECT авто.модель, авто.цвет, авто.цена, авто.номер_двиг  FROM "авто" into cursor temp;

WHERE EXISTS(SELECT *FROM "журнал_постав" WHERE журнал_постав.номер_двиг=авто.номер_двиг AND журнал_постав.код_пост=VAL(thisform.text4.value))

thisform.grid1.recordsource="temp"

    ThisForm.text4.value="" 

  1. выборка данных из связанных  таблиц

thisform.grid1.recordsource = 0

SELECT Клиенты.наимен, Клиенты.адрес, Клиенты.тел, Клиенты.факс;

 FROM ;

     data1!клиенты ;

    INNER JOIN data1!журнал_реализ ;

   ON  Клиенты.код_кл = Журнал_реализ.код_кл;

   into cursor temp;

WHERE  Журнал_реализ.код_опер_реал = VAL(ThisForm.text6.value)

Информация о работе Разработка СУБД "Японские автомобили"