База данных «Телефонный справочник»

Министерство  образования и науки Республики Казахстан

 

Колледж Карагандинского  Государственного Университета

имени академика Е.А. Букетова

 

 

 

Специальность: 1305000 – «Информационные системы (по областям применения)»

 

Дисциплина: «Программирование»

 

 

КУРСОВАЯ РАБОТА

на тему: База данных «Телефонный справочник»

 

 

 

 

                                                                   Выполнила:

                                                                                       обучающаяся гр. ИС-31

                                                                                          Цой Д.В.

 

                                                                                          Научный руководитель:

             преподаватель Гудз О. Д.

 

 

 

Караганда 2013

СОДЕРЖАНИЕ

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

 

Курсовая работа написана на тему БД «Телефонный справочник».

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

Курсовая работа состоит  из трех глав.

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

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

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

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

В курсовой работе планируется  также освоить приёмы работы с более новой версии языка программирования Паскаль – Паскаль АВС.

 

 

 

 

 

 

 

 

 

1. ВВЕДЕНИЕ В БАЗЫ ДАННЫХ

 

1.1 История возникновения и развития технологий создания баз данных

 

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

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

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

Сам термин database (база данных) появился в начале 1960-х годов, и был введён в употребление на симпозиумах, организованных фирмой SDC (System Development Corporation) в 1964 и 1965 годах, хотя понимался сначала в довольно узком смысле, в контексте систем искусственного интеллекта. В широкое употребление в современном понимании термин вошёл лишь в 1970-е годы и связан с появлением реляционной модели данных, благодаря работам Эдгара Ф. Кодда. Работы Кодда открыли путь к тесной связи прикладной технологии баз данных с математикой и логикой.

 

 

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

 

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

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

Неструктурированными  называют данные, записанные, например, в текстовом файле.

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

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

 

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

 

  1. По технологии обработки данных базы данных подразделяются на 2 вида:
  • Централизованные базы данных;
  • Распределенные базы данных.

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

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

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

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

 

1.4 Организация базы данных

 

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

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

Результатом логического  проектирования является концептуальная схема БД (это логическая модель предметной области). Эта модель отражает три вида информации:

  • Сведения об объектах предметной области;
  • Сведения о свойствах объектов;
  • Сведения об отношениях между объектами.

Такая модель не зависит  от: физической среды (типа ЭВМ), ОС, СУБД.

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

    1. Иерархическая;
    2. Сетевая;
    3. Реляционная.

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

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

Реляционная модель данных (РМД) строится на использовании табличных методов и способов представления данных и манипулирования ими. В реляционной модели данных информация о предметной области представляется таблицей – отношением. Строка таблицы называется запись, а столбец – поле.

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

 

 

2. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ

2.1 История развития языка Паскаль

 

В 1968 – 1971 годах швейцарский  профессор Никлаус Вирт предложил  язык Паскаль в качестве удобного учебного языка программирования.

В середине 1960 годов Международная  федерация по обработке информации IFIP открыла научную программу  по созданию нового языка программирования. Он должен был унаследовать лучшие черты популярного языка Алгол 60. Впоследствии проект был расширен поддержкой языка Алгол 68. Никлаус Вирт работал в те годы в Стэндфордском университете. Он занимался созданием компилятора для одного из диалектов Алгола 68 и предложил свой вариант нового языка, названный Алгол W. И хотя эксперты IFIP в конечном счете остановились на Алголе 68, Вирт по возвращении в Швейцарию продолжил работу над своим детищем.

В 1971 году Никлаус, опубликовал описание нового языка программирования Паскаль. Название было выбрано в честь французского монаха и математика Блеза Паскаля, жившего в XVII веке и сконструировавшего механический калькулятор. В ходе создания Паскаля профессор применял инженерно-конструкторские навыки, приобретенные при создании моделей радиоуправляемых самолетов. Язык Паскаль был придуман во многом как учебный язык, предназначенный для обучения программированию. Стандарт этого языка был утвержден позже, он считался более совершенным и удобным для работы, чем широко распространенные в то время языки программирования Алгол, Фортран, Бейсик. Язык Паскаль благодаря своей простоте и эффективности получил быстрое распространение в мире. Программа, записанная на этом языке, в процессе выполнения на компьютере сначала транслируется (переводится на машинный язык), преобразуется в объектный модуль и только затем происходит её выполнение. В это время на компьютере имеются два вида программ: первая – оригинал, записанный на алгоритмическом языке, а вторая – программа, записанная в машинных кодах. Результат задачи получаем через программу, записанную в машинных кодах, а редактирование (исправление ошибок в тексте программы) осуществляем в программе-оригинале, записанной на алгоритмическом языке.

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

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

  • Благодаря своей компактности, удачному первоначальному описанию Паскаль оказался достаточно, лёгким для изучения;
  • Язык программирования Паскаль отражает фундаментальные и наиболее важные концепции (идеи) алгоритмов в очевидной и легко воспринимаемой форме, что предоставляет программисту средства, помогающие проектировать программы;
  • Язык программирования Паскаль позволяет чётко реализовать идеи структурного программирования и структурной организации данных;
  • Язык программирования Паскаль сыграл большую роль в развитии методов аналитического доказательства правильности программ и позволил реально перейти от методов отладки программ к системам автоматической проверки правильности программ;
  • Применение языка Паскаль значительно подняло "планку" надёжности разрабатываемых программ за счёт требований Паскаля к описанию используемых в программе переменных, проверки согласованности программы при компиляции без её выполнения.

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

2.2 Операторы, используемые для создания базы данных

 

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

  • Ввода;
  • Вывода;
  • Условного оператора;
  • Операторы цикла;
  • Оператор безусловного перехода.

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

  • Числовой и строковый;
  • Записи;
  • Файлы;
  • Массивы.

 

А. Оператор ввода - вывода.

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

READ (список переменных);

READLN (список переменных);

READLN;

После выполнения данного  оператора программа останавливается  и ждет ввода данных с клавиатуры. Переменные в «списке переменных» разделяются запятой:

READ (a1, a2,…,an);

READLN (a1, a2,…,an);

READLN;

здесь a1, a2,…,an – имена переменных, их называют параметрами процедуры ввода.

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

Пример:

VAR I:real;

    J:integer;

    K:сhar;

Begin

Read (I,J,K);

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

WRITE (‘комментарии’, переменные);

WRITELN (‘комментарии’, переменные);

Вид выводимых данных определяется типом переменных. Для  вывода можно использовать переменные типов: integer, real, boolean (true, false), char, string. Выводимые параметры отделяются друг от друга запятой и пишутся после ключевого слова WRITE в круглых скобках:

WRITE (a1, a2,…,an);

WRITELN (a1, a2,…,an);

или

WRITE (FN, a1, a2,…,an);

где a1, a2,…,an – выражение типа integer, real, boolean (true, false), char, string; FN – имя файла, куда производится вывод.

В. Условный оператор или оператор IF

Оператор IF (если) является широко распространенным способом изменения возможностей естественного выполнения действий в программе. Условный оператор включает в себя операторы, которые выполняются или не выполняются в зависимости от записанного в операторе условия.

Условный оператор может записываться в полной и не полной форме.

Полная форма условного  оператора имеет вид:

IF “условие” THEN “оператор 1”

ELSE “оператор 2”;

где “условие” – выражение логического типа; “оператор 1” выполняется, если условие верно (TRUE); “оператор 2” выполняется, если условие неверно (FALSE).

Блок-схема полного условного  оператора показана на рисунке 1.

Обратите внимание на запись служебных слов и операторов. Каждое слово ELSE пишется под своим словом IF. Для большей наглядности и «читаемости» текста программы операторы, следующие за словом THEN и  ELSE можно писать на следующей строке.

Правило: Перед словом ELSE нельзя ставить точку с запятой.

Условие в операторе IF.. THEN.. ELSE может быть простым или сложным. Простое условие представляет собой логическое выражение, состоящее из двух выражений одинакового типа, соединенных знаком операции отношения (>, <, >=, <>, <=). Сложное условие состоит простых, соединенных знаками логических операций: OR (или), NOT (не), AND (и). При этом каждое условие ограниченно с обеих сторон круглыми скобками.

Рисунок 1. Блок-схема полного условного оператора

Неполная форма условного  оператора имеет вид:

IF “условие” THEN “оператор”

Действие этого оператора отличается от предыдущего тем, что в случае невыполнения условия начинает выполняться следующий после IF…THEN… оператор программы, то есть может отсутствовать блок ELSE “оператор 2”.

Задача №2. Написать программу поиска наибольшего из двух чисел. Найденное число должно быть помещено в переменную МАХ.

С. Операторы цикла

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

    1. Цикл с предусловием;
    2. Цикл с постусловием;
    3. Цикл с параметром.

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

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

Формат записи оператора FOR записывается в следующих двух видах:

FOR <параметр цикла>: = <младшее значение> TO <старшее значение> DO <оператор>;

где <младшее значение>, <старшее значение> - выражения для задания начального и конечного значений параметра цикла; <оператор> - тело цикла.

Ключевые слова означают: FOR («для»), TO («до»), DO («выполнить»). Выполнение оператора FOR изображено в виде блок-схемы на рисунке 2.

Рисунок 2. Блок-схема оператора FOR

 

Цикл с предусловием или оператор WHILE. Цикл с предусловием WHILE используется когда, число повторений оператора цикла заранее неизвестно, а задается некоторое условие продолжение цикла. Оператор WHILE осуществляет повторение по предварительной проверке условий, а также с помощью ключевых слов WHILE (переводится – «пока») и DO (переводится – «выполнить»). Формат записи оператора WHILE имеет следующий вид:

WHILE <условие повторения> DO <тело цикла>;

Здесь <условие повторения> – логическое выражение, показанное в диаграмме, <тело цикла> – простой или составной оператор, который выполняется с повторением.

Выполнение оператора WHILE изображено в виде блок-схемы рис. 3. Здесь вместо тела цикла может стоять составной оператор. На языке Паскаль составной оператор располагается внутри операторных скобок BEGIN и END. Поэтому представить формат записи оператора WHILE в следующем виде:

WHILE <условие> DO

BEGIN

           <оператор 1>;

             …

           <оператор n>

END;

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

Рисунок 3. Блок-схема оператора WHILE

 

Оператор безусловного перехода. Goto – команда безусловного перехода. Она предназначена для изменения последовательности выполнения команд в программе путем передачи управления некоторой команды с меткой. Безусловный переход имеет формат:

Goto <метка>;

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

Метка в стандарте  языка Pascal представляют собой идентификаторы, которые должны быть перечислены в разделе описания меток, начинающемся служебным словом LABEL, кроме идентификаторов в качестве меток можно использовать последовательность цифр в диапазоне от 0 до 9999, например:

Label 1,2,8,Fio;

Одной меткой можно пометить только одного оператора. Метка от помеченного  оператора отделяется двоеточием.

Пример:

6: writeln (‘Введите количество учащихся’);

D. Типы данных

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

Классификация типов  данных показана на рисунке 4.

Рисунок 4. Классификация типов данных

 

Кроме этих типов все  другие типы должны определяться в  разделе описания типов программы. Для описания типов в программе  в разделе описаний используется ключевое слово TYPE. Формат записи раздела типов:

TYPE <имя типа> = <значение типа>.

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

D.1 Целый тип данных

Имена (идентификаторы), принимающие значения целого типа, описываются следующим образом: Имя 1, Имя 2, …, Имя n: тип; здесь вместо типа используется одно из ключевых слов, описывающее целый тип. Например: integer, byte, ….

D.2 Строковый  тип данных

Значением строковой  величины может быть любая цепочка  символов. Строка – это последовательность символов кодовой таблицы персонального компьютера. Количество символов в строке (длина строки) может изменяться от 0 до 255.

 На языке Паскаль широко применяются строковые переменные. Для указания их типа сначала пишется имя переменной, затем в квадратных скобках указывается количество символов (длина строки), после чего через двоеточие пишется ключевое слово STRING. Тип строковых переменных можно указать в разделе описания типов или непосредственно в разделе описания переменных. Описание в разделе переменных:

VAR

<имя переменной, … >: STRING [длина строки];

Например:

VAR

        TEX1 : string [29];

        NAZV: string [40];

        A        : string;

D.3 Массивы]

Массив – это упорядоченная  последовательность данных одного типа, объединенных под одним именем.

Общий вид:

var <имя массива>: ARRAY [<Диапазон индексов>] of <тип массива>;

Пример:

var S: array [1..40] of real;

     N: array [‘A’..’Z’] of string;

     A: array [1..10] of integer;

    …

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

D.4 Записи

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

Запись – структурированный тип данных, состоящий из фиксированного числа компонентов разного типа. Определение типа записи начинается идентификатором RECORD и заканчивается зарезервированным словом END. Между ними заключается список компонентов, называемых полями, с указанием идентификаторов полей и типом каждого поля.

Общий вид:

TYPE <Имя типа> = RECORD

<Идентификатор поля>:<Тип поля>;

< Идентификатор поля >:< Тип поля >;

………………..

< Идентификатор поля >:< Тип поля >;

End;

Var <идентификатор, …>:<имя типа>;

Доступ к полям записи осуществляется через переменную типа запись. Например:

Type Student=Record

FIO:string[30];

ADRES:string[20];

Kyrs:integer;

End;

Var S: Student;

Запись Student имеет 3 компонента: ФИО студента, его адрес и курс, на котором учится студент. Доступ к полям записи осуществляется через переменную S типа Student.

Обращение к значению поля записи осуществляется с помощью  идентификатора переменной и идентификатора поля, разделенных точкой. Такая  комбинация называется составным именем. Например, чтобы получить доступ к полям записи Student, надо записать S.FIO, S.ADRES, S.KYRS. составное имя может использоваться везде, где допустимо применение типа поля.

Для присваивания полям  записи значений используется оператор присваивания. Например:

S.FIO:=’Цой Дарья Вадимовна’;

S.ADRES:=’улица Дибаева, 70’;

S.KYRS:=3;

Составные имена можно  использовать в операторах ввода-вывода.

Например:

Readln (S.FIO, S.ADRES, S.KYRS);

Writeln (S.FIO, S.ADRES, S.KYRS);

D.5 Файлы

Файл – это структурированный  тип данных, состоящий из последовательности компонентов одного типа и одной длины. Чаще всего компонентами файла являются записи. Определение типа файлов начинается словосочетанием file of, после которого задается тип компонентов файла, который описывает, что содержит данный файл. Длина файла определением типа файла не фиксируется.

Type <тип компонент>=record

<поле> : <тип>;

<поле> : <тип>;

….

<поле> : <тип>;

end;

var FV : file of <тип компонент>; {переменная для доступа к файлу}

RV : <тип компонент>; {переменная для доступа  к записи}

Пример:

Type Zapis=record

F10 : string [20];

Prof : string [30];

End;

Var FV: file of Zapis;

RV: Zapis;

Файлы символьных данных называются текстовыми файлами. Компонентами текстового файла являются строки. Длина строки может меняться от 0 до 255.

Стандартные процедуры и функции обработки файлов:

  • Assign (FV, Str) – присвоить имя файлу. Файловой переменной FV присваивается значение STR.
  • Rewrite (FV) – создать новый файл. Указатель файла устанавливается в позицию (с номером 0). Файл подготовлен для загрузки.
  • Reset (FV) – установить указатель в начало существующего файла.
  • Read (FV, P) – читать из файла FV значения p1, p2, p3, …, pn.
  • Write (FV, n) – записать в файл FV значения p1, p2, p3, …, pn.
  • Close (FV) – закрыть файл.
  • Eof (FV) – проверить маркер «конец файла». Значение функции равно True, если указатель файла находятся за последним компонентом файла и False в любом другом случае.
База данных «Телефонный справочник»