Курсовая работа по базе данных СУБД

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ
Кабардино-Балкарский Государственный Университет
                             им. Бербекова Х.М.



            [pic]



                                                           Выполнил: студент



                                         Факультета Информатики и Управления


                 Проверил:



                               Нальчик 2003г.



                                 Содержание.
   1. Введение.
   2 База данных и способы ее представление.
   3. Свойства полей базы данных.
   4. Цели и задачи.
   5. Разработка системного меню.
   6.  Описание программы.
      6.1         Инструкция       по        использованию        программы.

      6.2    Описание процедур.
   7.   Результаты.
   8.   Вывод.
   9.                            Листинг                          программы.


                                 1.Введение.

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


                  2.База данных и способы ее представления.


     База Данных (БД) - это  информация,  представленная  в  виде  двумерных
таблиц.  БД  содержит  множество  строк,  каждая  из  которых  соответствует
объекту. Для каждого объекта используются определенные независимые  позиции,
которые называются полями. Представим себе такую  БД,  содержащую  строки  и
столбцы (простейший случай).  Каждая  строка,  называемая  так  же  записью,
соответствует  определенному  объекту.  Каждый  столбец  содержит   значения
соответствующих данных об объекте.
     БД может состоять не из  одной  таблицы,  а  из  двух,  трех  и  более.
Дополнительную  информацию  об  объекте  можно  хранить   в   дополнительных
таблицах.
     Одно  из  мощных  средств  БД  состоит  в  том,  что  информацию  можно
упорядочивать по тому критерию, который задает  пользователь.  В  Pascal  БД
предоставляется в  виде  списка  термов  вида:            имя_предиката_базы
(поля_записи).  Имена БД  описываются  в  разделе  .  Доступ  к  записям  БД
осуществляется с  помощью  предиката  базы.  pascal  предоставляет  довольно
много средств по работе с такими БД: загрузка, запись, добавление и т.д.
База данных – это организованная  структура,  предназначенная  для  хранения
информации. В современных базах данных  хранятся  не  только  данные,  но  и
информация.
Это утверждение легко пояснить, если, например, рассмотреть базу данных
крупного банка. В ней есть все необходимые сведения о клиентах, об их
адресах, кредитной истории, состояние расчетных счетов, финансовых
операциях и т.д. Доступ к этой базе данных имеется у достаточно большого
количества сотрудников банка, но среди них вряд ли найдется такое лицо,
которое имеет доступ ко всей базе полностью и при этом способно единолично
вносить в нее произвольные изменения. Кроме данных, база содержит методы и
средства, позволяющие каждому из сотрудников оперировать только с теми
данными, которые входят в его компетенцию. В  результате взаимодействия
данных, содержащихся в базе, с методами, доступными конкретным сотрудникам,
образуется информация, которую они потребляют и на основании которой в
пределах собственной компетенции производят ввод и редактирование данных.
   С понятием базы данных тесно связано понятие системы управления базой
данных. Это комплекс программных средств, предназначенных для создания
структуры новой базы, наполнение ее содержимым, редактирование содержимого
и визуализации информации. Под визуализацией информации базы понимается
отбор отображаемых данных в соответствии с заданным критерием, их
упорядочение, оформление и последующая выдача на устройства вывода или
передачи по каналам связи.  В мире существует множество систем управления
базами данных. Несмотря на то что они могут по-разному работать с разными
объектами и предоставляют пользователю различные функции и средства,
большинство СУБД опираются на единый устоявшийся комплекс основных понятий.
Это дает нам возможность рассмотреть одну систему и обобщить ее понятия,
приемы и методы на весь класс СУБД. В качестве такого учебного объекта мы
выберем СУБД Pascal 7.0, входящую в пакет Pascal 7.0.



                        3.Свойства полей базы данных.


Поля базы данных не просто определяют структуру базы –  они  еще  определяют
групповые свойства данных, записываемых в ячейки, принадлежащие  каждому  из
полей. Ниже  перечислены  основные  свойства  полей  таблиц  баз  данных  на
примере СУБД Pascal 7.0 ..
 o Имя поля – определяет, как следует обращаться к  данным  этого  поля  при
   автоматических операциях с базой (по умолчанию имена полей используются в
   качестве заголовков столбцов таблиц).
 o Тип поля – определяет тип данных,  которые  могут  содержаться  в  данном
   поле.
 o Размер поля – определяет предельную длину (в  символах)  данных,  которые
   могут размещаться в данном поле.
 o  Формат  поля  –  определяет  способ  форматирования  данных  в  ячейках,
   принадлежащих полю.
 o Маска ввода  –  определяет  форму,  в  которой  вводятся  данные  а  поле
   (средство автоматизации ввода данных).
 o Подпись – определяет заголовок столбца таблицы  для  данного  поля  (если
   подпись не указана, то в качестве заголовка столбца используется свойство
   Имя поля).
 o Значение по умолчанию – то  значение,  которое  вводится  в  ячейки  поля
   автоматически (средство автоматизации ввода данных).
 o Условие на значение – ограничение, используемое для проверки правильности
   ввода данных (средство автоматизации  ввода,  которое  используется,  как
   правило, для данных, имеющих числовой тип, денежный тип или тип даты).
 o Сообщение об ошибке – текстовое сообщение, которое выдается автоматически
   при попытке ввода в поле ошибочных данных.
 o Обязательное поле  –  свойство,  определяющее  обязательность  заполнения
   данного поля при наполнении базы.
 o Пустые строки – свойство, разрешающее ввод пустых  строковых  данных  (от
   свойства Обязательное поле отличается тем, что относится не ко всем типам
   данных, а лишь к некоторым, например к текстовым).
 o Индексированное поле – если поле обладает этим свойством,  все  операции,
   связанные с поиском или сортировкой записей по  значению,  хранящемуся  в
   данном поле, существенно  ускоряются.  Кроме  того,  для  индексированных
   полей можно сделать так, что значение  в  записях  будут  проверяться  по
   этому полю на наличие повторов,  что  позволяет  автоматически  исключить
   дублирование данных.
Поскольку в разных  полях  могут  содержаться  данные  разного  типа,  то  и
свойства у полей могут  различаться  в  зависимости  от  типа  данных.  Так,
например, список вышеуказанных свойств полей относится в  основном  к  полям
текстового типа.
Поля других типов могут иметь или не иметь эти свойства, но могут  добавлять
к ним и свои. Например, для  данных,  представляющих  действительные  числа,
важным свойством является количество  знаков  после  десятичной  запятой.  С
другой   стороны,   для   полей,   используемых   для   хранения   рисунков,
звукозаписей, видео клипов и других объектов OLE, большинство  вышеуказанных
свойств не имеют смысла.


                              4.Цели и задачи.

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



                        5.Разработка системного меню.


      Системное  меню  или  основное  меню   должно   обеспечивать   удобное
взаимодействие  пользователя  с  программой.  В  меню  должны  войти  пункты
сохранения, просмотра, ввода новых  данных и.т.д. Пользователю  нужно  всего
лишь нажать кнопку ‘enter’.  В  меню  данной  программы  присутствует  шесть
пунктов:
     1 -Создание файла
     2 -Добавления запеси
     3 -Корректировка запеси
     4 -Просмотр запеси из файла
     5 -Удаление запеси
     6 -Выход
1 - Создание нового  файла  –  Создается  новый  файл  с  именем  задаваемым
пoльзователем программы
2 - Просмотр  содержимого  файла  –  на  экран  поочередно  выдаются  раннее
созданные записи в виде:
      Фамилия хозяина:
       Имя хозяина:
       марка машины:
       модель маштны:
       тип кузова:
       номер машины:
       регион:
       год выпуска:
       цвет:
3  – Добавление записи – Создание новой записи и файле добавляя его в  конец
записи.
4 – Поиск по номеру палаты – Позволяет находить данные о отдыхающем по
    номеру палаты , в котором зарегистрирован  отдыхающий.
5 - Выход из программы - выход из программы

                            6.Описание программы.
                6.1Инструкция  по  использованию  программы.

      Для  запуска  этой  программы  необходимо  перейти  на   диск   3.5“A”
прилагаемый к данной работе и войти в директорию «KYRSOVAI».
Создания базы данных.
        Для того чтобы создать базу данных  пользователю  необходимо  нажать
пункт  «СОЗДАНИЕ ФАЙЛА» в  главном  меню  с  помощью   «ENTER».После   этого
появится следующая строка: «ЗАДАЙТЕ ИМЯ ФАЙЛА  КОТОРЫЙ  БУДЕТ  СОЗДОВАТЬСЯ».
Далее через  «ENTER» вводятся данные.
Дополнение данных.
      Для  дополнения  данных  необходимо  нажать  кнопку  «ENTER» . После
этого  появиться  следующая  строка:   «ЗАДАЙТЕ ИМЯ ФАЙЛА  В  КОТОРЫЙ  БУДЕТ
ДОБОВЛЯТЬСЯ ЗАПИСЬ»

Выыход.
          Возврощает в главную програму.

 2. Описание  процедур.

      Creatfile-создание файла;
      Addrecord-добавление запеси;
      Inputfile-ввод данных;
      Redzap-корректировка;
      Openfile-просмотр;
      Clearfile-удаление.



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



Program kursovay;
uses Crt,Dos;
  type prokat=record
           Sname_Hozaina,Name_Hozaina:string[15];
           markauto:string[20];
           model_auto:string[20];
           tip_kyzova:string[20];
           nomer_auto:string[20];
           region:integer;
           god_vipyska:integer;
           color:string[20];
  end;
  var      f:file of prokat;
       zn,filename:string;
                 k:integer;
  label 11;

  {-----------------------------------------------------------}

  procedure Creatfile;
    begin
      writeln('Задайте имя файла,который будет создаваться');
      readln(filename);
      assign(f,filename);
      rewrite(f);
    end;

  {-----------------------------------------------------------}

  procedure Addrecord;
  var rez:integer; ch:char;
  begin
   while rez<>0 do
    begin
      writeln('Задайте имя файла,в который будет добавляться запись');
      readln(filename);
      assign(f,filename);
      reset(f);
            rez:=IOResult;
            if rez<>0 then
               begin
                 writeln('Проверьте правильность имени файла!');
                 writeln('Будет ли повторное задание имени файла?(Y/N)');
                 readln(ch);
                 if (ch='n') or (ch='N') then halt (0);
               end;
          end;
      seek(f,filesize(f));
    end;

   {==========================================================}

 procedure Inputfile;
     var st:prokat;
         k:char;
     begin
      repeat
         writeln('Введите данные о новом клиенте : ');
         write('Фамилия Хозяина : ');
readln(st.Sname_Hozaina);
         write('Имя Хозяина:' );
readln(st.Name_Hozaina);
         write('марка машины:');                     readln(st.markauto);
         write('модель машины:');                    readln(st.model_auto);
         write('тип кузова:');
readln(st.tip_kyzova);
         write('номер машины: ');                   readln(st.Nomer_auto);
         write('регион:');                          readln(st.region);
         write('год выпуска: ');                 readln(st.God_vipyska);
         write('цвет: ');                    readln(st.color);
         write(f,st);
          write('Надо ли вводить данные о новом клиенте ?
(Y/N)>');readln(k);
          writeln;
      until(k='n') or (k='N');
     close(f);
   end;

    {=========================================================}

    procedure redzap;
var
                 st:prokat;
       filename,str:string;
       Sname_Hozaina2,Name_Hozaina2:string[15];
           markauto2:string[20];
           model_auto2:string[20];
           tip_kyzova2:string[20];
           nomer_auto2:string[20];
           region2:integer;
           god_vipyska2:integer;
           color2:string[20];
                  x:integer;
begin
    writeln('Задайте имя файла');
    readln(filename);
    assign(f,filename);
    reset(f);
      with st do
       begin write('Введите фамилию клиента: ');readln(str);
       x:=0;
       while not eof(f) do
         begin
           read(f,st);
           if st.Sname_Hozaina=str then
             begin
         writeln('Введите новые данные о клиенте: ');
         write('Фамилия хозяина: ');
readln(st.Sname_Hozaina);
         write('Имя хозяина: ');                   readln(st.Name_Hozaina);
          write('марка машины:');                  readln(st.markauto);
          write('модель машины:');                 readln(st.model_auto);
          write('тип кузова:');                    readln(st.tip_kyzova);
          write('номер машины:');                  readln(st.nomer_auto);
          write('регион:');                        readln(st.region);
          write('год выпуска:');                   readln(st.god_vipyska);
         write('цвет: ');                  readln(st.color);
               Sname_Hozaina2:=Sname_Hozaina;      markauto2:=markauto;
               Name_Hozaina2:=Name_Hozaina;        color2:=color;
               Nomer_auto2:=Nomer_auto;            model_auto2:=model_auto;
               God_vipyska2:=God_vipyska;          tip_kyzova2:=tip_kyzova;
               region2:=region;
         seek(f,filepos(f)-1);
         write(f,st); x:=1;
       end; end;
       close(f);
    end;
   if x=0 then  begin writeln('Записи с такой фамилией нет!');readln end;
end;

  {==============================================================}

   procedure Openfile;
     var rez:integer;ch:char;
     begin
       while rez<>0 do
         begin
            writeln('Задайте имя файла');
            readln(filename);
            assign(f,filename);
            reset(f);
            rez:=IOResult;
            if rez<>0 then
               begin
                 writeln('Проверьте правильность имени файла!');
                 writeln('Будет ли повторное задание имени файла ? (Y/N)');
                 readln(ch);
                 if (ch='n') or (ch='N') then halt (0);
               end;
          end;
     end;

     {============================================================}

     procedure Outputfile;
       var st:prokat;k:char;
       begin
         writeln('Хотите посмотреть данные о клиентах ? (Y/N)');
         readln(k);
          if (k='y') or (k='Y') then
            while not eof(f) do
              begin
                read(f,st); clrscr;
         writeln('Фамилия хозяина:',st.Sname_Hozaina);
         writeln('Имя хозяина:',st.Name_Hozaina);
         writeln('марка машины:',st.markauto);
         writeln('модель машины:',st.model_auto);
         writeln('тип кузова:',st.tip_kyzova);
         writeln('номер машины:',st.nomer_auto);
         writeln('регион;',st.region);
         writeln('год выпуска:',st.god_vipyska);
         writeln('цвет:',st.color);
         writeln('Для продолжения нажмите (enter)');
         readln;
              end;
           close(f);
       end;

       {========================================================}

       procedure Clearfile;
        var st:prokat;
            studtoout:string[20];
            fo:file of prokat;
        begin
             writeln('Задайте имя файла,из которого удаляются элементы');
             readln(filename);
             assign(f,filename);reset(f);
             assign(fo,'newfile.dat');rewrite(fo);
             writeln('Задайте фамилию клиента, запись о котором
удаляется');
             readln(studtoout);
              while not eof(f) do
               begin
                read(f,st);
                if st.sname_Hozaina<>studtoout then write(fo,st);
               end;
              close(f);close(fo);
              erase(f);
              rename(fo,filename);
         end;

                         {ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ}

     Begin  11:clrscr;
        writeln('     МЕНЮ:');
        writeln('1:Создание файла');
        writeln('2:Добавление записи в файл');
        writeln('3:Корректировка записи');
        writeln('4:Просмотр файла');
        writeln('5:Удаление записи из файла');
        writeln('6:Выход из программы');
        readln(k);
         case k of 1: begin Creatfile; Inputfile end;
                   2: begin Addrecord; Inputfile end;
                   3: redzap;
                   4: begin Openfile; Outputfile end;
                   5: Clearfile;
                   6: Halt;
               else writeln('Ошибка.Повторите номер режима.')
         end;
goto 11;
End.