Системы управления базами данных

Автор: Пользователь скрыл имя, 30 Ноября 2011 в 19:55, курсовая работа

Краткое описание

Написать программу на языке СУБД, реа¬лизующей элементы языка SQL. Даны сущности, между кото¬рыми необходимо установить связь. Атрибуты сущностей задаются самостоятельно (3-6 на каж¬дую сущность). При необходимости, добавление новых сущностей приветствуется. Программа должна иметь удобный интерфейс пользователя и корректно реализовывать основные операции (добавление, удаление, изменение, поиск записи по любому атрибуту, сортировку при выводе).

Оглавление

Задание кафедры………………………………………………………………………………..…….3
Описание предметной области……………………………………………………………………..4
Диаграмма «сущность-связь»……………………………………………………………………....8
Нормализованные таблицы в 3 нормальной форме………………………………………………9
Описание основных функций программы ………………………………………………………10
Текст программы…………………………………………………………………………………..13
Выводы по работе………………………………………………………………………

Файлы: 1 файл

Курсяк Системы управления базами данных.doc

— 210.00 Кб (Скачать)

     Третья  нормальная форма требует, во-первых, соответствия второй. А во-вторых - чтобы значение любого поля, не входящего в первичный ключ не зависело от других полей, не входящих в первичный ключ.

     Есть  ведомость начисления зарплаты: 
 
 

     Таб № Фамилия Должность Сумма 

     1 Иванов Директор 100 

     2 Петров его зам 90  

     Поля "Фамилия" и "Должность" - лишние, потому, что мы эти данные можем  взять из таблицы для отдела кадров. То есть при печати эти поля будут, а вот в бази их хранить не следует.

     Считается что первых трех нормальных форм достаточно для большинства практических применений.

     Как мы рассматривали выше, при нормализации увеличивается количество таблиц и, соответственно, ссылок между таблицами. Пока их немного - все в порядке. Но при усложнении базы может наступить момент, когда разработчик просто не в состоянии удержать в голове все взаимосвязи. Это значит, пора остановиться и заняться денормализацией.

     Другая  сторона - при каждом шаге по таблице  компьютер должен будет найти  соответствующую запись в подчиненной таблице, затем в подчиненной более низкого уровня и т.д. Это несколько снижает производительность. При наличии правильно построенных индексов это не сильно заметно, но иногда может быть важно. Тут многое зависит от реализации самой СУБД. Иногда здорово помогало пожертвовать третьей нормальной формой и ввести избыточную информацию в главную таблицу для того, чтобы ей не приходилось скакать по подчиненным.

     Индексирование. Индекс по первичному ключу позволяет быстро найти нужную запись. Это самый быстрый способ перейти к нужной записи. Кроме того он незаменим при связывании таблиц.

     При каждом обновлении таблицы индексы  тоже модифицируются. Если их слишком  много, это займет много времени. Понятие "слишком" сильно зависит  от СУБД, но обычно считается, что 5 индексов на таблицу - нормально.

     При связывании таблиц нам нужно, чтобы  при перемещении по главной таблице  записи в подчиненной искались как  можно быстрее. Поле, по которому мы связываем таблицы, называется внешним  ключом.

 

      Диаграмма «сущность-связь» 
 

 

     

     Нормализованные таблицы в 3 нормальной форме 

     Отношение находится в 3-ей нормальной форме  если оно находится во 3-ой нормальной форме и каждый ключевой атрибут  не транзитивно зависит от первичного ключа.

     Используя данное определение были получены и приведены к 3-ей нормальной форме следующие отношения-таблицы:

     
Индекс  поставщика Имя поставщика Адрес Телефон Факс E-mail
 
 

Таблица 1 
 

Таблица 2

Ключ  поставки Индекс поставки Код поставки Дата Цена поставки № склада
 

 

Ключ  товара Индекс товара Название товара Количество  товара Цена единицы  товара
 

Таблица 3 
 

     Из  приведенных таблиц видно что  первая таблица (поставщик) является главной  по отношению ко второй (поставка), в  свою очередь вторая таблица (поставка) является главной по отношению к третьей таблице (товар).

     Первая  таблица находится со второй в  отношении «одно ко многому».

     Вторая  таблица находится с третьей  в отношении «одно ко многому».

 

      Описание основных функций программы  

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

     Программа имеет интуитивно понятный интерфейс. При загрузки, программа имеет  следующий вид: 

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рис. 1 

     Начало  работы  программой начинается с вкладки «общей таблицы», где показывается все присутствующие записи в базе данных с выводом по всем столбцам. При малом количестве записей данное представление информации очень удобно для просмотра интересующей информации. При щелчке мыши по выбранному столбцу, производится сортировка по нему, что также может помочь при поиске.

     При нажатии на вкладку «поиск» отображается Поисковая система информации (Рис 2).

     Данное  меню позволяет найти любую информацию в базе данных. Поиск по всем полям  базы данных делает поиск наиболее эффективным для пользователя, к тому же есть возможность объединить несколько полей для поиска, что позволяет искать интересующую информацию с очень хорошей эффективностью.

     Также на этой вкладке имеется возможность  отфильтровать информацию, поставив галочку на полях, которые нужно отобразить. Это очень эффективно, когда нужно избавиться от лишней информации при поиске и найти именно то, что нужно.

     После выбора «параметров поиска» и  «вывода информации» следует  нажать кнопку «Найти», после чего программа перейдет к виду, который показан на рис. 1, и выведет информацию, соответствующую запросу пользователя.

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рис. 2 

     При нажатии на кнопку «Вывести все записи»  программа перейдет к виду, который  показан на рис.1 и выведет все имеющиеся записи в базе данных (то что было при запуске программы).

     При нажатии на вкладку «База данных»  открывается окно редактирования базы данных (Рис. 3).

     В этом окне можно отредактировать, удалить  или добавить запись. Здесь представлены 3 таблицы для редактирования: поставщик, поставка, товар. Редактирование таблиц производится с помощью кнопок, которые расположены над каждой таблицей.

     После редактирования вся информации заносится  в базу данных. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рис. 3

 

      Текст программы 

     unit Unit1; 

     interface 

     uses

       Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

       Dialogs, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls, DBCtrls, XPMan; 

     type

       TForm1 = class(TForm)

         PageControl1: TPageControl;

         TabSheet1: TTabSheet;

         PageControl2: TPageControl;

         TabSheet2: TTabSheet;

         TabSheet3: TTabSheet;

         TabSheet4: TTabSheet;

         DBGrid1: TDBGrid;

         Label1: TLabel;

         GroupBox1: TGroupBox;

         GroupBox2: TGroupBox;

         GroupBox3: TGroupBox;

         CheckBox1: TCheckBox;

         CheckBox2: TCheckBox;

         CheckBox3: TCheckBox;

         CheckBox4: TCheckBox;

         CheckBox5: TCheckBox;

         CheckBox6: TCheckBox;

         CheckBox7: TCheckBox;

         CheckBox8: TCheckBox;

         CheckBox9: TCheckBox;

         CheckBox10: TCheckBox;

         CheckBox11: TCheckBox;

         CheckBox12: TCheckBox;

         Edit1: TEdit;

         Edit2: TEdit;

         Edit3: TEdit;

         Edit4: TEdit;

         Edit5: TEdit;

         Edit6: TEdit;

         Edit7: TEdit;

         Edit8: TEdit;

         Edit9: TEdit;

         Edit10: TEdit;

         Edit11: TEdit;

         Edit12: TEdit;

         Button1: TButton;

         GroupBox4: TGroupBox;

         GroupBox5: TGroupBox;

         GroupBox6: TGroupBox;

         CheckBox13: TCheckBox;

         CheckBox14: TCheckBox;

         CheckBox15: TCheckBox;

         CheckBox16: TCheckBox;

         CheckBox17: TCheckBox;

        GroupBox7: TGroupBox;

         CheckBox18: TCheckBox;

         CheckBox19: TCheckBox;

         CheckBox20: TCheckBox;

         CheckBox21: TCheckBox;

         GroupBox8: TGroupBox;

         CheckBox22: TCheckBox;

         CheckBox23: TCheckBox;

         CheckBox24: TCheckBox;

         GroupBox9: TGroupBox;

         CheckBox25: TCheckBox;

         CheckBox26: TCheckBox;

         CheckBox27: TCheckBox;

         CheckBox28: TCheckBox;

         DBGrid2: TDBGrid;

         DBGrid3: TDBGrid;

         DBGrid4: TDBGrid;

         DBNavigator1: TDBNavigator;

         DBNavigator2: TDBNavigator;

         DBNavigator3: TDBNavigator;

         XPManifest1: TXPManifest;

         Button2: TButton;

         TabSheet5: TTabSheet;

         procedure FormActivate(Sender: TObject);

         procedure DBGrid1TitleClick(Column: TColumn);

         procedure CheckBox25Click(Sender: TObject);

         procedure CheckBox26Click(Sender: TObject);

         procedure CheckBox27Click(Sender: TObject);

         procedure CheckBox28Click(Sender: TObject);

         procedure Button1Click(Sender: TObject);

         procedure Button2Click(Sender: TObject);

       private

         { Private declarations }

       public

         { Public declarations }

       end; 

     var

       Form1: TForm1; 

     implementation 

     uses Unit2; 

     {$R *.dfm} 

     var

     nam:integer; 

     procedure viborpostavshik;

     begin

     with form1 do begin

     if CheckBox25.State=cbChecked then begin

     checkbox13.State:=cbchecked;

     checkbox14.State:=cbchecked;

     checkbox15.State:=cbchecked;

     checkbox16.State:=cbchecked;

     checkbox17.State:=cbchecked;

     end;

     if CheckBox25.State=cbUnchecked then begin

     checkbox13.State:=cbUnchecked;

     checkbox14.State:=cbUnchecked;

     checkbox15.State:=cbUnchecked;

     checkbox16.State:=cbUnchecked;

     checkbox17.State:=cbUnchecked;

     end;

     end;

     end; 

     procedure viborpostavka;

     begin

     with form1 do begin

     if CheckBox26.State=cbChecked then begin

Информация о работе Системы управления базами данных