Приложение для работы с базой данных (dBase)

Этапы проектирования приложения (в данном случае - телефонного справочника), позволяющего создать базу данных, делать ее сортировку, производить новые записи или удаление полей. Листинг программы, которая производит индексацию и проверку базы данных.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 31.05.2012
Размер файла 368,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

1. Введение

2. Постановка задачи

3. Практическая часть: Приложение телефонный справочник ПГТУ

Заключение

Список использованной литературы

Введение

С начала 60-70хх началось бурное развитие компьютеризации всех крупных промышленных центров. Ближе к 80-ым, компьютеры стали появляться и в учебных заведениях, предмету «Информатика» стали уделять огромное внимание. Стали появляться языки программирования высокого уровня такие, как Delphi, C++.

Далее пойдет речь о языке программирования Delphi и о базах данных.

В России Borland Delphi появляется в конце 1993 г. и сразу же завоевывает широкую популярность. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования.

Действительно, процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Вы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector). С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки - и вот простое приложение готово. Причем разработчик получает в свое распоряжение мощные средства отладки (вплоть до пошагового выполнения команд процессора), удобную контекстную справочную систему (в том числе и по Microsoft API), средства коллективной работы над проектом, всего просто не перечислить. Вы можете создавать компоненты ActiveX без использования Microsoft IDL, расширять возможности web-сервера (скрипты на стороне сервера), практически ничего не зная об HTML, XML или ASP. Можно создавать распределенные приложения на базе СОМ и CORBA, Интернет- и intranet-приложения, используя для доступа к данным Borland DataBase Engine, ODBC-драйверы или Microsoft ADO. Появившаяся, начиная с Delphi 3, поддержка многозвенной технологии (multi-tiered) доступа к данным позволяет создавать масштабируемые приложения (относительно слабо зависящие от сервера БД) за счет перенесения методов обработки информации (бизнес-правил) на среднее звено.

Как уже говорилось ранее, в Delphi используется язык Object Pascal, который постоянно расширяется и дополняется Borland. Язык в полной мере поддерживает все требования, предъявляемые к объектно-ориентированному языку программирования. Как и положено строго типизированному языку, классы поддерживают только простое наследование, но зато интерфейсы могут иметь сразу несколько предков. К числу особенностей языка следует отнести поддержку обработки исключительных ситуаций (exceptions), а также перегрузку методов и подпрограмм (overload) в стиле C++. К числу удачных, на взгляд автора, относится также поддержка длинных строк в формате WideChar и AnsiChar. Последний тип (AnsiStrmg) позволяет использовать все прелести динамического размещения информации в памяти без всяких забот о ее выделении и сборке мусора Delphi делает это автоматически. Для поклонников свободного стиля программирования имеются открытые массивы, варианты и вариантные массивы, позволяющие размещать в памяти все, что душе угодно и смешивать типы данных.

Вы можете создавать свои собственные компоненты, импортировать ОСХ-компоненты, создавать <шаблоны> проектов и <мастеров>, создающих <заготовки> проектов. Мало того, Delphi предоставляет разработчику интерфейс для связи ваших приложений (или внешних программ) с интегрированной оболочкой Delphi (IDE).

Таким образом, вы можете использовать Delphi для создания как самых простых приложений, на разработку которых требуется 2-3 часа, так и серьезных корпоративных проектов, предназначенных для работы десятков и сотен пользователей. Причем для этого можно использовать самые последние веяния в мире компьютерных технологий с минимальными затратами времени и сил.

Ну, и одна из самых последних новостей от Inprise обещает, что в ближайшем будущем вы сможете переносить приложения, разработанные в Delphi, на платформу Linux. Более подробную информацию о Delphi можно получить на сайтах. Существует большое количество сайтов, посвященных Delphi, например <Королевство Delphi> - delphi.vitpc.com, Torry's Delphi Pages.Последний содержит большое число ссылок на ресурсы, связанные с Delphi. Ну а если вы уже давно знакомы с этим продуктом, то на сайте можно бесплатно протестироваться в качестве программиста Delphi и получить по почте сертификат.

Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре - процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database Application Programming Interface (IDAPI).

В принципе, сейчас не различают эти два названия (BDE и IDAPI) и считают их синонимами. BDE позволяет осуществлять доступ к данным как с использованием традиционного record-ориентированного (навигационного) подхода, так и с использованием set-ориентированного подхода, используемого в SQL-серверах баз данных. Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC) фирмы Microsoft. Но, как показывает практика, производительность систем с использованием BDE гораздо выше, чем оных при использовании ODBC. ODBC драйвера работают через специальный “ODBC socket”, который позволяет встраивать их в BDE.

Все инструментальные средства баз данных Borland - Paradox, dBase, Database Desktop - используют BDE. Все особенности, имеющиеся в Paradox или dBase, “наследуются” BDE, и поэтому этими же особенностями обладает и Delphi.

2. Постановка задачи

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

3. Практическая часть: Приложение телефонный справочник ПГТУ

Что бы базу данных можно было переносить с компьютера на другой компьютер программа должна сама создавать алиасы. Так как dBase сохраняет базу данных в виде файла с названием базы dBase.DBF. Удобно не просто указывать путь доступа к таблицам базы данных, а использовать для этого некий заменитель - псевдоним, называемый алиасом. Он сохраняется в отдельном конфигурационном файле в произвольном месте на диске и позволяет исключить из программы прямое указание пути доступа к базе данных. Такой подход дает возможность располагать данные в любом месте, не перекомпилируя при этом программу. Кроме пути доступа, в алиасе указываются тип базы данных, языковый драйвер и много другой управляющей информации.

Ниже приведен листинг программы которая производит индексацию и проверку базы данных, а также изображение работы программы (PROGRESS.PAS)

Рис.1 Индексация базы данных

unit Progress;

interface

uses

Windows, SysUtils, Classes, Forms, Dialogs, StdCtrls,

DB, DBTables, Controls, ComCtrls, Registry,ShellApi, Messages, Graphics,

ExtCtrls ;

const

MM_BASE = WM_USER;

MM_OKSTART = MM_BASE + $1;

MM_DATAERROR = MM_BASE + $2;

MM_KeyDown = MM_BASE + $3;

MM_ENDTHREAD = MM_BASE + $4;

type

TMainForm = class(TForm)

ProgressBar1: TProgressBar;

lbPersent: TLabel;

Table2: TTable;

Image1: TImage;

Table1: TTable;

Timer1: TTimer;

lbMessage: TLabel;

procedure FormCreate(Sender: TObject);

procedure ProgressAOM (var MSG: tagMSG; var Handled: boolean);

procedure DataError(var Message: TMessage); message MM_DATAERROR;

procedure Timer1Timer(Sender: TObject);

procedure EndThread(var Message:TMessage); message MM_ENDTHREAD;

private

IsCanStart: boolean;

FStartTime: cardinal;

function SearchFile(FileName: string): boolean;

public

{ Public declarations }

end;

type EPhoneException = class (Exception);

var

MainForm: TMainForm;

tick: cardinal;

IsFirst : boolean = true;

const

sDataFile = 'Data.dbf';

sIndexFile = 'Data.mdx';

sBuffFile = 'DataBuff.dbf';

sBuffFile2 = 'DataBuff2.dbf';

sShortappname = 'LutskPhone';

sIniFile = 'options.ini';

sDataFileError = 'Ошибка при работе с базаю данных '+#10#13+

'Проверьте наличии файла базы!';

sBDEError = 'Ошибка работы с BDE!';

implementation

uses Teldov, Thread, ActiveX, ComObj, ShlObj;

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);

var

mess: tagmsg;

handled :boolean;

begin

try

IsCanStart := false;

Top := (Screen.Height - Height) div 2-200;

Left := (Screen.Width - Width) div 2;

Application.OnMessage := ProgressAOM ;

// создание ярлыка, запись в реестр

try

Table1.TableName := sBuffFile;// Check BDE

Table1.CreateTable;

Table1.Close;

// ShowMessage(DBIgetErrorString);

DeleteFile(ExtractFilePath(ParamStr(0))+'/'+sBuffFile);

except

raise EPhoneException.Create(sBDEError); // error BDE

end;

if not SearchFile(sDataFile)

then raise EPhoneException.Create(sDataFileError);

if not SearchFile(sIndexFile)

then DataThread.create(false)

else IsCanStart := true;

except

on E: Exception do

begin

MessageDlg(e.Message, mtError, [mbOk],0);

PostMessage(MainFOrm.Handle, MM_DATAERROR, 0, 0);

end;

end;

Invalidate;

end;

procedure TMainForm.ProgressAOM (var MSG: tagMSG; var Handled: boolean);

begin

if MSG.message = MM_OKSTART then

begin

Timer1.Enabled := false;

Application.CreateForm(TPhoneForm, PhoneForm);

MainFOrm.Hide;

PhoneForm.Show;

Application.OnMessage := PhoneForm.AOM;

end;

end;

function TMainForm.SearchFile(FileName: string): boolean;

var

CurrFile : TSearchRec;

begin

if FindFirst(GetCurrentDir +'\'+FileName, faAnyFile, CurrFIle)=0

then Result := true

else Result := false;

end;

procedure TMainForm.DataError(var Message: TMessage);

begin

Close;

end;

procedure TMainForm.Timer1Timer(Sender: TObject);

begin

if IsFirst then

begin

IsFirst := false;

FStartTime := 0; // GetTickCount;

end;

if IsCanStart then

begin

Tick := GetTickCount;

if Tick > (FStartTime + 0) // 1000

then PostMessage(MainFOrm.Handle, MM_OKSTART, 1, 0);

end

end;

procedure TMainForm.EndThread(var Message: TMessage);

begin

Image1.Visible := true;

Caption := '';

lbPersent.Visible := false;

lbMessage.Visible := false;

ProgressBar1.Visible := false;

IsCanStart := true;

end;

end.

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

Рис.2 Главное окно программы

На рисунке 3 показан результат поиска в базе данных по номеру телефона.

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

База данных состоит из шести полей : номер телефона, ФИО, улица, номер дома, номер квартиры, категория.

Что соответствует полям в базе данных: номер телефона - NUMTEL, ФИО - FAMIL, улиуа - STREET, номер дома - HOUSE, номер квартиры - KVART, категория - PR09.

Ниже приведен листинг программы (TElDov.pas):

база данные справочник приложение

unit TElDov;

interface

uses

Windows, SysUtils, Thread, Progress, ExtCtrls, ComCtrls, Menus,

ToolWin, DBCtrls, ImgList, Classes, Controls, StdCtrls, Grids,

DB, DBTables, DBGrids, Forms, Messages, Dialogs,Clipbrd;

type

TPhoneForm = class(TForm)

DataSource1: TDataSource;

Table1: TTable;

StatusBar1: TStatusBar;

GroupBox1: TGroupBox;

Search: TButton;

ToolBar1: TToolBar;

ExitButton: TToolButton;

SearchButton: TToolButton;

DBGrid1: TDBGrid;

ImageList1: TImageList;

SortButton: TToolButton;

PopupMenu1: TPopupMenu;

ImageList2: TImageList;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

ToolButton8: TToolButton;

PopupMenu2: TPopupMenu;

DBNavigator1: TDBNavigator;

procedure FormCreate(Sender: TObject);

procedure SearchClick(Sender: TObject);

procedure AOM(var Msg: tagMSG; var Handled: Boolean);

procedure EraseButtonClick(Sender: TObject);

procedure MyPopupHandler(Sender: TObject);

procedure MyPopupHandler2(Sender: TObject);

procedure MyEditPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure MInMaxSize(var Message: TMessage); message WM_GETMINMAXINFO;

procedure N20Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure ExitButtonClick(Sender: TObject);

procedure SearchButtonClick(Sender: TObject);

procedure FormDestroy(Sender: TObject);

private

procedure CreatePopupFields;

procedure UpdateStatusBar;

procedure CalculateEditSize;

procedure SortMode (Sender: tObject);

procedure ReadIni;

procedure WriteIni; // Ini-file

public

end;

var

PhoneForm: TPhoneForm;

Inputs : array [0..4] of TEdit;

MyThread: DataThread;

bool: boolean;

ColumnIndex: integer;

const

SortName : array[0..2] of string =('по Телефону','по Имени','по Улице');

IndexName : array [0..2] of string =('ByNumTel','ByFamil','ByStreet');

COPY_TO_CLIPBOARD = 'Копировать';

PASTE_FROM_CLIPBOARD = 'Вставить';

function IndexOfItem(Item: string): integer;

implementation

uses IniFiles, DBITypes, DBIProcs, Graphics,ShellApi;

{$R *.dfm}

procedure TPhoneForm.FormCreate(Sender: TObject);

var i, j: integer;

item : tMenuItem;

begin

Table1.TableName := sDataFile;

Table1.Open;

CreatePopupFields;

CalculateEditSize;

UpDateStatusBar;

ReadIni;

Application.onMessage := Aom;

end;

procedure TPhoneForm.MyPopupHandler(Sender: TObject);

begin

if Sender is TMenuItem then with (Sender as TMenuItem) do

begin

case tag of

0..2: begin Table1.IndexName := IndexName[(Sender as TMenuItem).tag ];

SortMode(Sender);

end;

4: Clipboard.AsText := DBGrid1.SelectedField.DisplayText;

end;

UpdateStatusBar;

end;

end;

procedure TPhoneForm.CreatePopupFields;

var

i: integer;

MyPopupMenuItem : array [0..4] of TMenuItem;

MenuItem: TMenuItem;

begin

for i := 0 to 4 do //Создание полей ввода

begin

Inputs[i] := TEdit.Create(self);

Inputs[i].Parent := GroupBox1;

Inputs[i].PopupMenu := PopupMenu2;

Inputs[i].OnContextPopup := MyEditPopup;

Inputs[i].Tag := i;

end;

for i := 0 to 4 do with PopupMenu1 do

begin //Создание меню сортирования

MyPopupMenuItem[i] := TMenuItem.Create(self);

if i<3 then MyPopupMenuItem[i].Caption := SortName[i];

MyPopupMenuItem[i].Tag := i;

MyPopupMenuItem[i].OnClick := MyPopupHandler;

PopupMenu1.Items.add(MyPopupMenuItem[i]);

end;

MyPopupMenuItem[3].Caption := '-';

MyPopupMenuItem[4].Caption := COPY_TO_CLIPBOARD;

MyPopupMenuItem[4].ShortCut := ShortCut(Word('C'), [ssCtrl]);

PopupMenu1.Items[0].Checked := true;

MenuItem := TMenuItem.Create(self);

MenuItem.Caption := PASTE_FROM_CLIPBOARD;

MenuItem.OnClick := MyPopupHandler2;

PopupMenu2.Items.add(MenuItem);

MyEditPopup(nil, Point(0,0), bool);

end;

procedure TPhoneForm.CalculateEditSize;

var

i: integer;

OffSet: integer;

begin

offset :=13; //Размер полей ввода

for i := 0 to 4 do

begin

Inputs[i].Left := Offset;

Offset := Offset + DbGrid1.Columns[i].width + 8;

Inputs[i].Width := DBGrid1.Columns[i].width;

Inputs[i].Top := 24;

Inputs[i].MaxLength :=Table1.Fields[i].Size;

end;

end;

procedure TPhoneForm.UpdateStatusBar;

var SortMode: string;

begin

statusBar1.Panels[0].Text := ' Найдено абонентов: '+ InttoStr(Table1.RecordCount);

Sortmode := SortName[0];

if PopupMenu1.Items[1].Checked then sortMode := SortName[1];

if PopupMenu1.Items[2].Checked then sortMode := SortName[2];

statusbar1.Panels[1].Text := ' Отсортировано: '+SortMode;

end;

procedure tPhoneForm.AOM(var Msg: tagMSG; var Handled: Boolean);

var key : word;

begin

handled := false;

if msg.message = Wm_keydown then

begin // Обробка клавиш

key := msg.wParam;

handled := true;

case key of // Обробка клавиш

vk_up: SendMessage(DBGrid1.Handle,wm_keydown, vk_up, 0);

vk_Down: SendMessage(DBGrid1.Handle,wm_keydown, vk_down, 0);

vk_Prior: SendMessage(DBGrid1.Handle,wm_keydown, vk_Prior, 0);

vk_Next: SendMessage(DBGrid1.Handle,wm_keydown, vk_Next, 0);

vk_return: Search.OnClick(Search);

vk_f1: Application.HelpCommand(HELP_CONTENTS, 0);

else handled := false;

end;

end;

end;

procedure TPhoneForm.SearchClick(Sender: TObject);

var

filters: string;

i: integer;

begin

filters := '';

for i:= 0 to 4 do //with table1 do

begin

if Inputs[i].Text <> ''

then filters := filters + '('+Table1.Fields[i].FieldName + '='+ QuotedStr(Inputs[i].Text + '*')+ ') and';

end;

if filters <> '' then

Filters := copy(Filters, 0, Length(filters)-4);

table1.Filter := filters;

UpdateStatusBar;

end;

procedure TPhoneForm.EraseButtonClick(Sender: TObject);

var

i: integer;

begin

for i := 0 to 4 do Inputs[i].Text := '';

end;

procedure TPhoneForm.SortMode (Sender: tObject);

var

i: integer;

begin

for i := 0 to 2 do

PopupMenu1.Items[i].Checked := false;

(sender as TMenuItem).Checked := true;

end;

procedure TPhoneForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

application.OnMessage := MainForm.progressAom;

WriteIni;

postMessage(MainForm.Handle, WM_CLOSE, 0, 0);

end;

procedure TPhoneForm.ReadIni;

begin

with TIniFile.Create(ExtractFilePath(Application.exename)+sIniFile) do

begin

table1.IndexName := IndexName[ReadInteger('Defaults','SortIndex', 0)];

Left := ReadInteger('Position','left', 100);

top := ReadInteger('Position','top', 100);

Height := ReadInteger('Position','height', 50);

end;

end;

function IndexOfItem(Item: string): integer;

begin

if Item = SortName[1] then result := 1

else if Item = SortName[2] then result := 2

else result := 0;

end;

procedure TPhoneForm.WriteIni;

begin

with TIniFile.Create(ExtractFilePath(Application.exename)+sIniFile) do

begin

WriteInteger('Defaults','SortIndex', IndexOfItem(Table1.indexName));

WriteInteger('Position','left', PhoneForm.left);

WriteInteger('Position','top', PhoneForm.top);

WriteInteger('Position','height', PhoneForm.height);

end;

end;

procedure TPhoneForm.MInMaxSize(var Message: TMessage);

begin

with TwmGetMinMaxInfo(Message) do

begin

MinMaxInfo.ptMaxTrackSize.X := PhoneForm.Width;

MinMaxInfo.ptMaxTrackSize.y := Screen.Height- 100;

MinMaxInfo.ptMinTrackSize.X := PhoneForm.Width;

MinMaxInfo.ptMinTrackSize.y := 200;

end;

end;

procedure TPhoneForm.MyPopupHandler2(Sender: TObject);

begin

if Sender is TMenuItem then

if Clipboard.HasFormat(CF_TEXT) then // number of edit send by popupmenu2.tag

Inputs[PopupMenu2.Tag].Text := Clipboard.AsText;

end;

procedure TPhoneForm.MyEditPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);

begin

PopupMenu2.Items[0].Enabled := Clipboard.HasFormat(CF_TEXT);

if Sender is TEdit then PopupMenu2.Tag := (Sender as TEdit).Tag

end;

procedure TPhoneForm.N20Click(Sender: TObject);

begin

Application.HelpCommand(HELP_WM_HELP ,0);

end;

procedure TPhoneForm.N13Click(Sender: TObject);

begin

Table1.First;

end;

procedure TPhoneForm.N14Click(Sender: TObject);

begin

Table1.Prior;

end;

procedure TPhoneForm.N15Click(Sender: TObject);

begin

Table1.Next;

end;

procedure TPhoneForm.N16Click(Sender: TObject);

begin

Table1.Last;

end;

procedure TPhoneForm.ExitButtonClick(Sender: TObject);

begin

Table1.Close;

PhoneForm.Close;

end;

procedure TPhoneForm.SearchButtonClick(Sender: TObject);

begin

Search.OnClick(Sender);

end;

procedure TPhoneForm.FormDestroy(Sender: TObject);

begin

Application.HelpCommand(HELP_QUIT,0);

end;

end.

Заключение

В результате выполнения курсовой работы мною было создано приложение для работы с базой данных (dBase) создание алиасов к базе данных.

Список использованной литературы

1. А. Я. Архангельский Программирование в Delphi 7.2003г.

2. Никита Культин. Основы программирования в Delphi 7. Самоучитель.2002г.

3. Delphi 7. Учебный курс. Бобровский С.

Размещено на Allbest.ru


Подобные документы

  • Создание приложения, использующего возможности встроенной в ОС Android базу данных SQLite. Проектирование приложения для преподавателей "DataBase". Классы для работы с SQLite. Вставка новой записи в базу данных. Методы update и delete. Листинг программы.

    курсовая работа [744,9 K], добавлен 07.07.2014

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

    курсовая работа [12,6 M], добавлен 17.06.2014

  • Назначение базы данных для обеспечения работы автобусного парка. Основные возможности админпанели. Выполняемые базой данных и приложением функции. Инфологическое моделирование данных. Описание разработанного web-приложения. Проектирование базы данных.

    курсовая работа [2,2 M], добавлен 01.02.2013

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

    курсовая работа [1,3 M], добавлен 27.06.2013

  • Логическая и физическая модели базы данных. Запрет на содержание неопределенных значений. Размещение базы данных на сервере. Реализация клиентского приложения управления базой данных. Модульная структура приложения. Основные экранные формы приложения.

    курсовая работа [1,4 M], добавлен 13.06.2012

  • Разработка прикладной программы, организующей работу с базой данных флагов мира, осуществляющей просмотр и редактирование базы данных, поиск по категориям, сортировку данных с использованием базы данных Paradox 7. Системные требования к программе.

    курсовая работа [200,4 K], добавлен 02.03.2009

  • Разработка базы данных "Студенты", которая позволяет производить операции с данными: регистрацию студентов в базе данных, а также удаление, изменение, резервное копирование информации о студентах. Алгоритм работы программы и вспомогательных процедур.

    курсовая работа [27,5 K], добавлен 06.02.2013

  • Программа для работы с однотабличной ненормализованной базой данных. Цель программы: обеспечение инструментарием для работы с базой данных различных школьных соревнований. Работа с базой данных на физическом и логическом уровнях. Элементы языка.

    курсовая работа [114,3 K], добавлен 02.03.2009

  • Создание структуры базы данных на примере "Школьного журнала" с использованием метода и принципа нормализации. Понятия базы данных, архитектуры БД и проектирования. Описание предметной области; приложения для работы с базой данных TTable и TQuery.

    дипломная работа [996,4 K], добавлен 01.04.2012

  • Реляционная модель базы данных в текстовом виде. Код, с помощью которого были созданы и заполнены таблицы. Разработка схемы базы данных справочника селекционера. Создание запросов, их основные виды. Процедуры на выбор данных, добавление и удаление.

    методичка [1,1 M], добавлен 20.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.