База данных книжного магазина

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    325,22 Кб
  • Опубликовано:
    2013-01-22
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

База данных книжного магазина

Введение

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

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

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

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

В связи с тем, что тема курсового проекта база данных «Книжный магазин», будет рассмотрена база данных, в которую входят: названия книг, авторы книг, характеристики, так как она является эффективным средством для работы.

Целью данного курсового проекта является проектирование и создание системы управления базы данных - «Книжный магазин».

1. База данных

 

1.1 Понятие базы данных


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

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

Структурирование - это введение соглашений о способах представления данных.

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

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

База данных (БД) - это поименованная совокупность структурированных данных, относящихся к определенной предметной области.

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

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

Классификация баз данных

По технологии обработки данных базы данных подразделяются на централизованные и распределенные.

Централизованная база данных хранится в памяти одной вычислительной системы. Если эта вычислительная система является компонентом сети ЭВМ, возможен распределенный доступ к такой базе. Такой способ использования баз данных часто применяют в локальных сетях ПК.

Распределенная база данных состоит из нескольких, возможно пересекающихся или даже дублирующих друг друга частей, хранимых в различных ЭВМ вычислительной сети. Работа с такой базой осуществляется с помощью системы управления распределенной базой данных (СУРБД).

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

Системы централизованных баз данных с сетевым доступом предполагают различные архитектуры подобных систем:

• файл-сервер;

• клиент-сервер.

Файл-сервер. Архитектура систем БД с сетевым доступом предполагает выделение одной из машин сети в качестве центральной (сервер, файлов). На такой машине хранится совместно используемая централизованная БД. Все другие машины сети выполняют функции рабочих станций, с помощью которых поддерживается доступ пользовательской системы к централизованной базе данных. Файлы базы данных в соответствии с пользовательскими запросами передаются на рабочие станции, где в основном и производится обработка. При большой интенсивности доступа к одним и тем же данным производительность информационной системы падает. Пользователи могут создавать также на рабочих станциях локальные БД, которые используются ими монопольно.

Клиент-сервер. В этой концепции подразумевается, что помимо хранения централизованной базы данных центральная машина (сервер базы данных) должна обеспечивать выполнение основного объема обработки данных. Запрос на данные, выдаваемый клиентом (рабочей станцией), порождает поиск и извлечение данных на сервере. Извлеченные данные (но не файлы) транспортируются по сети от сервера к клиенту. Спецификой архитектуры клиент-сервер является использование языка запросов SOL.

Структурные элементы базы данных

Понятие базы данных тесно связано с такими понятиями структурных элементов, как поле, запись, файл (таблица).

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

имя, например. Фамилия, Имя, Отчество, Дата рождения;

тип, например, символьный, числовой, календарный;

длина, например, 15 байт, причем будет определяться максимально возможным количеством символов;

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

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

Файл (таблица) - совокупность экземпляров записей одной структуры.

В структуре записи файла указываются поля, значения которых являются ключами первичными (ПК), которые идентифицируют экземпляр записи, и вторичными (ВК), которые выполняют роль поисковых или группировочных признаков (по значению вторичного ключа можно найти несколько записей).

1.2 Виды моделей данных

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

Модель данных - совокупность структур данных и операций их обработки.

СУБД основывается на использовании иерархической, сетевой или реляционной модели, на комбинации этих моделей или на некотором их подмножестве.

Рассмотрим три основных типа моделей данных: иерархическую, сетевую и реляционную.

Иерархическая модель данных

Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево).

К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь. Узел - это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т.д. уровнях. Количество деревьев в базе данных определяется числом корневых записей.

К каждой записи базы данных существует только один (иерархический) путь от корневой записи.

Сетевая модель данных

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

Реляционная модель данных

Понятие реляционный (англ. relation - отношение) связано с разработками известного американского специалиста в области систем баз данных Е. Кодда.

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

Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

·    каждый элемент таблицы - один элемент данных;

·        все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;

·        каждый столбец имеет уникальное имя;

·        одинаковые строки в таблице отсутствуют;

·        порядок следования строк и столбцов может быть произвольным.

Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы - атрибутам отношений, доменам, полям.

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

Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести в структуру первой таблицы внешний ключ - ключ второй таблицы.

 

1.3 Типы связей


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

·      один к одному (1:1);

·        один ко многим (1: М);

·        многие ко многим (М: М).

Связь один к одному (1:1) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует не более одного экземпляра информационного объекта В и наоборот.

При связи один ко многим (1:М) одному экземпляру информационного объекта А соответствует 0, 1 или более экземпляров объекта В, но каждый экземпляр объекта В связан не более чем с 1 экземпляром объекта А. Графически данное соответствие имеет вид.

Связь многие ко многим (М:М) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует 0, 1 или более экземпляров объекта В и наоборот.

2. Действие программы

программа книжный магазин база

После запуска программы, пользователю предлагается выбрать нужное действие (выбор осуществляется с помощью стрелок ↑ или ↓):


Если выбрать 1 пункт, то нужно будет вводить данные о книге, ввод выполняется построчно, после ввода каждого значения пользователю необходимо нажать клавишу «ENTER».


После ввода данных программа проверяет, чтобы введенные значения не превышали допустимых значений. И записывает их в файл, который находится по следующему адресу: C:\\Knizhnyi.txt. Если в файле уже имеются данные, то программа добавит их в конец файла.

С помощью 2-го пункта меню пользователь может посмотреть каталог книг, которые занесены в базу данных:


Если в базе данных нет данных, то программа выдаст сообщение об ошибке, программа предложит выйти в меню, нажав клавишу Enter:


Третий пункт меню - Поиск книги, поиск можно осуществить по следующим критериям:

 

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



Программа выдает все данные о книге, кол-во книг по какому-либо критерию и стоимость этой книги, в случае присутствия её в базе данных, если такой книги нет, то программа выдаст сообщение об этом:


Последний пункт меню - выход из программы:

 


Заключение


Данная работа выполнена на языке высокого уровня программирования в среде Borland С++ Builder 6.

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

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

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

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


1.   Горев А., Макашарипов С., Эффективная работа с СУБД: СПб, «Питер», 1997.

2.   Кириллов В.В. Основы проектирования реляционных баз данных. Учебное пособие. - СПб.: ИТМО, 1994.

3.      Культин Н. «С/С++ в задачах и примерах» - СПб.:БХВ-Петербург, 2002. - 288 с.

.        Теллес, М. BORLAND C++ BUILDER: библиотека программиста. - СПб: Питер, 1998. - 512 с.

.        Архангельский, А.Я. Язык C++ в C++Builder: справочное и методическое пособие / А.Я. Архангельский. - М.: Бином, 2008. - 942 с.

.        Роберт Седжвик, Фундаментальные алгоритмы на С++, Санкт-Петербург, ООО «ДиаСофтЮП», 2002. Части 1-4 - 688 с., часть 5 - 496 с.

.        Т. Фейсон. Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544 с.

.        В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Вышэйшая школа, 1997. 480 с.

9.   Журнал «PC Magazine Russian Edition» 15, 1994.

10.    Журнал «КомпьюТерра» №37-38 1994.

Приложение А

Листинг программы

#include <vcl.h>

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

#include <cstdio.h>

#include <cstring.h>

#include <stdlib.h>

#pragma hdrstop

#define FNAME «C:\\Knizhnyi.txt\0»enter(), display(), poisk(), ramka();ramka ()

{int xx1, yy1, xx2, yy2;xi;=2; yy1=1; xx2=78; yy2=24;(xi=xx1; xi<=xx2-1; xi++)

{gotoxy (xi, yy1);<< "ͯ;(xi, yy2);<< "ͯ;

}(xi=yy1; xi<=yy2; xi++)

{(xx1, xi);<< "║»;(xx2, xi);<< "║»;

}(xx1, yy1);<< "╔»;(xx2, yy1);<< "╗»;(xx1, yy2);<< "╚»;(xx2, yy2);<< "╝»;

}

void draw (char str[15]); // Функция которая будет прорисовывать строку другим цветом

int menu(); // Функция основного менюmain (int argc, char* argv[]) {answer; char key;: clrscr(); textbackground(1);

ramka(); gotoxy (25,2);<< «Книжный магазин имени Ш. Уалиханова»;(;) { // бесконечный цикл выход из которого осуществится

int answer=menu(); // если функция menu() вернет 3(answer) {0: {clrscr();();(); goto l; break;} // Можно организовать вызов подпрограмм1: {clrscr();();(); goto l; break;}2: {clrscr();();(); goto l; break;}3: return 0;

}

}

}enter() {fname[30]=FNAME;*out;avtor[30];nazvanie[30];tema[30];god;(25,2); cout<< «Книжный магазин имени Ш. Уалиханова»;((out=fopen (fname, «at»))==NULL)

{gotoxy (5,8);(«Ошибка! Приносим свои извинения за неполадки в системе.»);(5,10);

cout<<» Нажмите Enter чтобы вернуться в главное меню.»;

getch();;

} gotoxy (5,4);(«Автор->»);(13,4);(«%s»,&avtor);(5,5);(«Название->»);(16,5);(«%s»,&nazvanie);(5,6);(«Жанр->»);(12,6);(«%s»,&tema);(5,7);(«Год издания->»);(19,7);(«%i»,&god);(out, "\n % s % s % s % i», avtor, nazvanie, tema, god);(5,9); puts («Заявка принята!»);(out);(5,11);(«Нажмите Enter»);();

}display() {fname[20]=FNAME;*in;avtor[30];nazvanie[30];tema[30];god; int ch;

gotoxy (25,2); cout<< «Книжный магазин имени Ш. Уалиханова»;

gotoxy (5,4); cout<< «Каталог:»;((in=fopen (fname, «rt»))==NULL)

{gotoxy (5,5);(«Ошибка! Приносим свои извинения за неполадки в системе.»);(5,10);

cout<<» Нажмите Enter чтобы вернуться в главное меню.»;

getch();;

} ch=6;(! feof(in)) {(in, "\n % s % s % s % i»,&avtor,&nazvanie,&tema,&god);(5, ch); ch++;(«%s % s % s % i», avtor, nazvanie, tema, god);}(in);(5,2+ch);(«Нажмите Enter»);();

}poisk()

{char fname[20]=FNAME;*in;avtor[30];nazvanie[30];tema[30];god, st;

gotoxy (25,2); cout<< «Книжный магазин имени Ш. Уалиханова»;

if ((in=fopen (fname, «rt»))==NULL)

{gotoxy (5,5);(«Ошибка! Приносим свои извинения за неполадки в системе.»);(5,10);

cout<<» Нажмите Enter чтобы вернуться в главное меню.»;

getch();;

}(5,3);<< «Поиск:»;

gotoxy (5,4);<< «По имени автора-1»;(5,5);<< «По названию книги-2»;(5,6);<< «По жанру-3»;(5,7);<< «По году издания-4»;(5,9);

cout<< «OTMEHA-5»;m[30], p, k[30];s, ch;(5,10); cin>>p;(p) {'1': {int i=0; clrscr(); ramka();(5,3); printf («Автор->»);(13,3); scanf («%s»,&m);(! feof(in)) {(in, "\n % s % s % s % i»,&avtor,&nazvanie,&tema,&god);(! strcmp (m, avtor)) {gotoxy (5,5+i);(«%s % s % s % i», avtor, nazvanie, tema, god);++;}}(i) {gotoxy (5,6+i); («Количество книг:%i», i);

gotoxy (5,8+i); randomize; st=200+rand()%2000; cout<<«Стоимость: «<<st<<» тенге.»;}

else {gotoxy (5,5); cout<< «У нас нет такой книги.»;}(5,10+i);<< «Нажмите Enter чтобы вернуться в главное меню.»;

fclose(in); getch(); break;}'2': {int i=0;(); ramka();(5,3);(«Название->»);(16,3); scanf («%s»,&k);(! feof(in)) {(in, "\n % s % s % s % i»,&avtor,&nazvanie,&tema,&god);(! strcmp (k, nazvanie)) {gotoxy (5,5+i);(«%s % s % s % i», avtor, nazvanie, tema, god);++;}}(i) {gotoxy (5,6+i); cout<<«Количество книг: «<<i;(5,8+i);; st=200+rand()%2000; cout<<«Стоимость: «<<st<<» тенге.»;}

else {gotoxy (5,5);<< «У нас нет такой книги.»;}(5,10+i);<< «Нажмите Enter чтобы вернуться в главное меню.»;

gotoxy (5,8+i);; st=200+rand()%2000;<<«Стоимость: «<<st<<» тенге.»;}{gotoxy (5,5); cout<< «У нас нет такой книги.»;}(5,10+i);<< «Нажмите Enter чтобы вернуться в главное меню.»;

fclose(in); getch(); break;}'4': {int i=0; clrscr(); ramka();(5,3);(«Год издания->»);(19,3);(«%i»,&s);(! feof(in)) {(in, "\n % s % s % s % i»,&avtor,&nazvanie,&tema,&god);(s==god) {gotoxy (5,5+i);(«%s % s % s % i», avtor, nazvanie, tema, god);++;}}(i) {gotoxy (5,6+i);<<«Количество книг: «<<i;

gotoxy (5,8+i);

randomize; st=200+rand()%2000;<<«Стоимость: «<<st<<» тенге.»;}

else {gotoxy (5,5);<< «У нас нет такой книги.»;}(5,10+i);<< «Нажмите Enter чтобы вернуться в главное меню.»;

fclose(in); getch(); break;}'5': {fclose(in); break;}: {gotoxy (5,9); cout<< «C 1 По 4»;}

}}

int menu() {

int key=0; // Переменная key в которой будет хранится смещение строки

int code; // Переменная для считывания кода нажатой клавиши

do {

clrscr();

ramka(); gotoxy (25,2);

cout<< «Книжный магазин имени Ш. Уалиханова»;

key=(key+4)%4; // Вычисление текущей позиции курсора

/*Если условия истина происходит вызов функции с параметром строки которую мне

надо отпечатать другим цветом, а если ложно строка выводится на экран*/

if (key==0) {gotoxy (25,10); draw («Заказать книгу»);}

else {gotoxy (25,10);

printf («Заказать книгу»);}(key==1) {gotoxy (25,11);(«Каталог книг имеющихся в продаже»);}{gotoxy (25,11);(«Каталог книг имеющихся в продаже»);}

if (key==2) {gotoxy (25,12);(«Поиск книги»);}{gotoxy (25,12);(«Поиск книги»);}(key==3) {gotoxy (25,13); draw («Выход»);}{gotoxy (25,13); printf («Выход»);}=getch(); // Считываю код нажатой клавиши и присваиваю его переменной code (code==0) // Если code==0 тогда была нажата служебная клавиша

{code=getch(); // и адрес служебной клавиши вернет getch()

if (code==80) key++; // если клавиша(вверх) увеличиваю смещение

if (code==72) key-; // если клавиша(вниз) уменьшаю смещение

}

} while (code!=13); // Если нажму Enter выйду из цикла

return key; // и функция вернет код выбранной менюшки

}

// прорисовка выбранной строки

void draw (char str[15]) {

textcolor(3); // задаю ее цвет

cprintf («>%s», str); // Вывожу ее на экран со «>»

ramka();

textcolor(15); // Меняю цвет на исходный белый

}

Похожие работы на - База данных книжного магазина

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!