Базы данных.

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Проектирование баз данных
  • 40 40 страниц
  • 7 + 7 источников
  • Добавлена 15.12.2007
800 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание

Введение
Глава 1. Разработка базы данных
1.1. Сведения о базах данных
1.1.1 Классификация баз данных
1.1.2. Структурные элементы базы данных
1.2. Виды моделей данных
1.3. Понятие информационного объекта
1.4. Нормализация отношений
1.4.1 Понятие нормализации отношений
1.5. Типы связей
1.6. Модели данных
1.6.1. Сведенья о моделях данных
1.6.2 Проектирование модели данных
1.6.3 Назначение модели
Глава 2. Разработка программы
2.1. Постановка задачи
2.2. Построение инфологической модели данных
2.3. Построение датологической модели данных
2.4. Основные принципы работы программы
2.5. Разработка интерфейса программы
2.6. Средства работы с базами данных
2.7. Системные требования программы
Заключение
Список литературы
Приложение 1. Текст программы

Фрагмент для ознакомления

Простой индекс состоит из одного поля, а составной (сложный) — из нескольких полей.
Индексы при их создании именуются. Как и в случае с ключом, в зависимости от СУБД индексы могут храниться в отдельных файлах или совместно с данными. Создание индекса называют индексированием таблицы.
Использование индекса обеспечивает:
- увеличение скорости доступа к данным (поиска);
- сортировку записей;
- установление связи между отдельными таблицами БД;
- использование ограничений ссылочной целостности;

В двух последних случаях индекс применяется совместно с ключом второй таблицы.
Как и ключ, индекс представляет собой своеобразное оглавление таблицы, просмотр которого выполняется перед обращением к ее записям. Таким образом, использование индекса повышает скорость доступа к данным в таблице за счет того, что доступ выполняется не последовательным, а индексно-последова-тельным методом.
Сортировка представляет собой упорядочивание записей по полю или группе полей в порядке возрастания или убывания их значений. Можно сказать, что индекс служит для сортировки таблиц по индексным полям. В частности, в Delphi записи набора Table можно сортировать только по индексным полям.
Набор данных Query позволяет выполнить средствами SQL сортировку по любым полям, однако и в этом случае для индексированных полей упорядочивание записей выполняется быстрее.
Для одной таблицы можно создать несколько индексов. В каждый момент времени один из них можно сделать текущим, т. е. активным. Даже при существовании нескольких индексов таблица может не иметь текущего индекса (текущий индекс важен, например, при выполнении поиска и сортировки записей набора данных Table).
Ключевые поля обычно автоматически индексируются. В таблицах Paradox ключ также является главным (первичным) индексом, который не именуется. Для таблиц dBase ключ не создается, и его роль выполняет один из индексов.
Создание ключа может привести к побочным эффектам. Так, если в таблице Paradox определить ключ, то записи автоматически упорядочиваются по его значениям, что в ряде случаев является нежелательным.
Таким образом, использование ключей и индексов позволяет:
- однозначно идентифицировать записи;
- избегать дублирования значений в ключевых полях;
- выполнять сортировку таблиц;
- ускорять операции поиска в таблицах;
- устанавливать связи между отдельными таблицами БД;
- использовать ограничения ссылочной целостности;

Одной из основных задач БД является обеспечение быстрого доступа к данным (поиска данных). Время доступа к данным в значительной степени зависит от используемых для поиска данных методов и способов.

Методы и способы доступа к данным

Выделяют следующие методы доступа к данным таблиц:
- последовательный;
- прямой;
- индексно-последовательный.

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

Навигационный способ доступа заключается в обработке каждой отдельной записи таблицы. Этот способ обычно используется в локальных БД или в удаленных БД небольшого размера. Если необходимо обработать несколько записей, то все они обрабатываются поочередно.
Реляционный способ доступа основан на обработке сразу группы записей, при этом если необходимо обработать одну запись, то обрабатывается группа, состоящая из одной записи. Так как реляционный способ доступа основывается на SQL-запросах, его также называют SQL-ориентированным. Этот способ доступа ориентирован на выполнение операций с удаленными БД и является пред-точтительным при работе с ними, хотя его можно использовать и для локальных БД.
Способ доступа к данным выбирается программистом и зависит от средств доступа к БД, используемых при разработке приложения. Например, в приложениях, создаваемых в Delphi, реализацию навигационного способа доступа можно осуществить посредством компонентов Table или Query, а реляционного — с помощью компонента Query.
Таким образом, методы доступа к данным определяются структурой БД, а способы доступа — приложением.

2.7. Системные требования программы

Для работы программы необходима установленная на компьютере пользователя операционная система Windows версии не ниже 95. Также для работы программы необходима установка на компьютере пользователя BDE (Borland Database Engine – процессор баз данных фирмы Borland). Данный процессор предоставляет развитый интерфейс API для взаимодействия с базами данных.
Для нормальной работы необходимо 128 Мб оперативной памяти, требования к свободному месту на жестком диске следующие: необходимо около 20 Мб свободного места для установки программы и процессора BDE, т.к. необходимость работы с базами данных подразумевает зависимость объема данных от количества записей, на 10 записей требуется около 50 Кб памяти на жестком диске.
Заключение

В данном проекте была разработана программа, представляющая собой справочник по функциям Паскаль.
Программа была разработана в среде Borland Delphi 7 с использованием процессора баз данных Borland Database Engine.
Программа обеспечивает вывод имеющихся данных, добавление новых данных и редактирование данных.


Список литературы

Архангельский А.Я. Object Pascal в Delphi. – М.: ЗАО «Издательство БИНОМ», 2002
Баргесян А.А., Куприянов М.С., Степаненко В.В., Холод И.И. «Методы и модели анализа данных», С-Пб, «БХВ-Петербург», 2004 г.
Горев А., Макашарипов С., «Эффективная работа с СУБД» СПб, «Питер», 1997.
Кириллов В.В. «Основы проектирования реляционных баз данных.» Учебное пособие. - СПб.: ИТМО, 1994.
Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. – СПб.: BHV, 1997
Хомоненко А., Гофман В., Мещеряков Е., Никифоров В. «Delphi 7» СПб, «БХВ-Петербург», 2005.
П.В.Шумаков, В.В.Фараонов Delphi. Руководство разработчика баз данных – М.: «Нолидж», 1999
Приложение 1. Текст программы

Файл «BasePascal»
program BasePascal;
uses
Forms,
Unit1 in 'Unit1.pas' {FormMain},
Unit2 in 'Unit2.pas' {DataModule2: TDataModule},
Unit3 in 'Unit3.pas' {FormEdit};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TFormMain, FormMain);
Application.CreateForm(TFormEdit, FormEdit);
Application.Run;
end.

Файл «Unit1.pas»
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Grids, DBGrids, DBCtrls, Buttons;

type
TFormMain = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
NameFunc: TEdit;
DBGrid1: TDBGrid;
DBMemo1: TDBMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
N3: TMenuItem;
N4: TMenuItem;
BitBtn1: TBitBtn;
N5: TMenuItem;
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure NameFuncKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FormMain: TFormMain;

implementation

uses Unit2, Unit3;
{$R *.dfm}

procedure TFormMain.N2Click(Sender: TObject);
begin
DataModule2.Table1.Active := False;
FormMain.Close;
end;

procedure TFormMain.N4Click(Sender: TObject);
begin
FormEdit.ShowModal;
end;

procedure TFormMain.BitBtn1Click(Sender: TObject);
begin
DataModule2.Table1.Active := False;
FormMain.Close;
end;

procedure TFormMain.NameFuncKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if(DataModule2.Table1.Locate('Name',NameFunc.Text,Options))then
begin
//NameFunc.Text := DataModule2.Table1Name.Value;
end;
end;

procedure TFormMain.DBGrid1CellClick(Column: TColumn);
begin
NameFunc.Text := DataModule2.Table1Name.Value;
end;

procedure TFormMain.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=38) or (Key=40) then
begin
NameFunc.Text := DataModule2.Table1Name.Value;
end;
end;

procedure TFormMain.N5Click(Sender: TObject);
begin
ShowMessage('Справочник по функциям Паскаль ' + #10#13 + ' Санкт-Петербург' + #10#13 + ' 2007 г.');
end;

end.




Файл «Unit2.pas»

unit Unit2;

interface

uses
SysUtils, Classes, DB, DBTables;

type
TDataModule2 = class(TDataModule)
DataSource1: TDataSource;
Table1: TTable;
Table1Name: TStringField;
Table1Text: TBlobField;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
DataModule2: TDataModule2;
Options : TLocateOptions;
implementation

{$R *.dfm}

procedure TDataModule2.DataModuleCreate(Sender: TObject);
begin
Table1.Active := True;
Options := [loCaseInsensitive,loPartialKey];
end;

end.

Файл «Unit3.pas»

unit Unit3;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Grids, DBGrids, Buttons;

type
TFormEdit = class(TForm)
Label1: TLabel;
NameFunc: TEdit;
DBGrid1: TDBGrid;
Label3: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
BtnEdit: TBitBtn;
BtnSave: TBitBtn;
TextFunc: TMemo;
BtnAdd: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure BtnEditClick(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure BtnAddClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure NameFuncKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FormEdit: TFormEdit;

implementation

Uses Unit2;
{$R *.dfm}

var Edit : boolean;

procedure TFormEdit.BitBtn1Click(Sender: TObject);
begin
FormEdit.Close;
end;

procedure TFormEdit.BtnEditClick(Sender: TObject);
begin
Edit := False;
DataModule2.Table1.Edit;
end;

procedure TFormEdit.BtnSaveClick(Sender: TObject);
begin
DataModule2.Table1Name.Value := NameFunc.Text;
DataModule2.Table1Text.Value := TextFunc.Text;
DataModule2.Table1.Post;
Edit := True;
end;

procedure TFormEdit.BtnAddClick(Sender: TObject);
begin
Edit := False;
NameFunc.Text := '';
TextFunc.Text := '';
DataModule2.Table1.Insert;
end;

procedure TFormEdit.DBGrid1CellClick(Column: TColumn);
begin
NameFunc.Text := DataModule2.Table1Name.Value;
TextFunc.Text := DataModule2.Table1Text.Value;
end;
procedure TFormEdit.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=38) or (Key=40) then
begin
NameFunc.Text := DataModule2.Table1Name.Value;
TextFunc.Text := DataModule2.Table1Text.Value;
end;
end;

procedure TFormEdit.NameFuncKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if(Edit = True) then
begin
if(DataModule2.Table1.Locate('Name',NameFunc.Text,Options))then
begin
//NameFunc.Text := DataModule2.Table1Name.Value;
//TextFunc.Text := DataModule2.Table1Text.Value;
end;
end;
end;

procedure TFormEdit.FormCreate(Sender: TObject);
begin
Edit := False;
end;

end.




Для корректной работы с русским языком нужно установить Table Language (Язык таблицы). Необходимо установить драйвер Pdox ANSI Cyrillic для корректного отображения русских символов.
Отметим, что таблицу нельзя переименовать, просто изменив названия всех ее файлов, например, с помощью Проводника Windows.


















38

Список литературы

1.Архангельский А.Я. Object Pascal в Delphi. – М.: ЗАО «Издательство БИНОМ», 2002
2.Баргесян А.А., Куприянов М.С., Степаненко В.В., Холод И.И. «Методы и модели анализа данных», С-Пб, «БХВ-Петербург», 2004 г.
3.Горев А., Макашарипов С., «Эффективная работа с СУБД» СПб, «Питер», 1997.
4.Кириллов В.В. «Основы проектирования реляционных баз данных.» Учебное пособие. - СПб.: ИТМО, 1994.
5.Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. – СПб.: BHV, 1997
6.Хомоненко А., Гофман В., Мещеряков Е., Никифоров В. «Delphi 7» СПб, «БХВ-Петербург», 2005.
7.П.В.Шумаков, В.В.Фараонов Delphi. Руководство разработчика баз данных – М.: «Нолидж», 1999

Вопрос-ответ:

Что такое базы данных?

База данных - это организованная структура для хранения и управления большими объемами данных.

Какие бывают классификации баз данных?

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

Что такое нормализация отношений?

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

Какие типы связей могут существовать в базе данных?

В базе данных могут существовать такие типы связей, как один к одному, один ко многим и многие ко многим.

Что такое инфологическая модель данных?

Инфологическая модель данных - это абстрактное представление данных и их связей без учета специфики программной реализации.

Что такое база данных?

База данных - это организованная коллекция данных, которая хранится и обрабатывается с помощью компьютерной системы.

Какие классификации баз данных существуют?

Базы данных могут быть классифицированы как иерархические, сетевые, реляционные, объектно-ориентированные, графовые и другие.

Какие структурные элементы включает база данных?

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

Что такое нормализация отношений?

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

Что такое модель данных?

Модель данных - это абстрактная структура, которая определяет способ организации данных в базе данных и их взаимосвязь.

Какие сведения о базах данных представлены в главе 1?

В главе 1 представлены сведения о классификации баз данных, структурных элементах базы данных, виды моделей данных, понятие информационного объекта, нормализации отношений, типах связей и моделях данных.