Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы программирования..pdf
Скачиваний:
8
Добавлен:
15.11.2022
Размер:
10.32 Mб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«Пермский государственный технический университет»

Региональный межотраслевой центр переподготовки кадров

С.И. Косякин

ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ

Утверждено Редакционно-издательским советом университета в качестве учебно-методического пособия

Издательство Пермского государственного технического университета

2008

УДК 681.3.06 ББК 32.973.26-018

К71

Рецензенты:

канд. техн. наук М С. Королев (Региональный институт повышения квалификации работников образования);

АЛ. Широков (Пермский государственный технический университет)

Косякин, С. И.

К71 Высокоуровневые методы программирования: учеб.-метод. пособие / С.И. Косякин. - Пермь: Изд-во Перм. гос. техн. ун-та, 2008. - 145 с.

JSBN 978-5-88151-966-7

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

Приведены лабораторные работы, дающие навыки проектирования конечных приложений, основанных на выборке информации из связанных физических таблиц, используя платформы Microsoft SQL сервер, Visual Basic и Boland Delphi. |

Предназначено для студентов, проходящих обучение по специальности «При­ кладная информатика в экономике».

ISBN 978-5-88151-966-7

УДК 681.3.06 ББК 32.973.26-018

ГОУ ВПО «Пермский государственный технический университет», 2008

СОДЕРЖАНИЕ

 

Лекция 1. ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ..........

5

1.1. Эволюция технологии программирования

5

1.2. Сущность технологии объектно-ориентированного программирования.............

8

1.3. Использование объектных моделей при организации удаленных соединений...

11

1.3.1. Объектная модель Microsoft V B .............................................................................

14

1.3.2. Пример приложения, использующего технологию ADO и DataEnvironment.

22

1.3.3. Объектная модель Borland Delphi..........................................................................

23

Лекция 2. КОМАНДНЫЙ TRANSACT-SQL..................................................................

26

2.1. КЛАССИФИКАЦИЯ ОБЪЕКТОВ БД ..........................................................................

26

2.2. СВОЙСТВА И ОСОБЕННОСТИ ЭЛЕМЕНТОВ ЯЗЫКА

27

2.2.1. Выражения.................................................................................................................

28

2.2.2. Преобразования данных..........................................................................................

30

2.3. Создание и удаление баз данных....................................................................................

32

2.4. Создание и модификация таблиц баз данных..............................................................

33

2.5. Правила и умолчания.........................................................................................................

36

2.6. Индексы

37

Лекция 3. РАБОТА С ДАННЫМИ В ЯЗЫКЕ TRANSACT-SQL.............................

39

3.1. Особенности использования оператора SELECT

40

3.2. Создание и использование представлений...................................................................

48

3.3. Команды манипуляции данными....................................................................................

50

Лекция 4. ПРОЦЕДУРНЫЙ TRANSACT-SQL..............................................................

51

4.1. Стандарты синтаксиса Transact-SQL..............................................................................

51

4.1.1. Работа с переменными.............................................................................................

52

4.1.2. Временные таблицы.................................................................................................

52

4.2. Основные управляющие конструкции Transact-SQL.....................................................

53

4.2.1. Синтаксис хранимых процедур.............................................................................

54

4.2.2. Стандартные функции Transact-SQL.....................................................................

55

4.2.3. Функции пользователя.............................................................................................

57

4.3. Курсоры..................................................................................................................................

59

4.3.1. Разновидности курсоров.........................................................................................

59

4.3.2. Работа с курсором....................................................................................................

60

4.4. Примеры использования процедур, функций и курсора...........................................

61

Лекция 5. АДМИНИСТРИРОВАНИЕ СЕРВЕРА.........................................................

65

5.1. Разграничение прав доступа............................................................................................

65

5.2. Концепция системы безопасности SQL Server

66

5.2.1. Виды привилегий......................................................................................................

66

5.2.2. Привилегии доступа к системе..............................................................................

67

5.2.3. Привилегии доступа к объектам............................................................................

67

5.2.3.1. Команда GRANT.........................................................................................

68

5.2.3.2. Директива GRANT OPTION....................................................................

68

5.2.3.3. Директива ADMIN OPTION....................................................................

69

5.2.3.4. Доступ к отдельным столбцам.................................................................

69

5.2.3.5. Команда REVOKE......................................................................................

69

5.2.4. Команда CREATE ROLE.........................................................................................

70

5.3. Пользователи........................................................................................................................

71

5.4. Роли сервера и БД...............................................................................................................

72

5.5. Права доступа к объектам.................................................................................................

73

5.6. Командные манипуляции с БД.........................................................................................

74

5.7. Связанные и удаленные серверы....................................................................................

75

5.8. Резервное копирование и восстановление данных.....................................................

77

Список рекомендуемой литературы.......................................................................................

ВО

ЛАБОРАТОРНАЯ РАБОТА № 1.

 

Доступ к БД на основе технологии ADO и DAO................................................................

81

ЛАБОРАТОРНАЯ РАБОТА № 2.

 

Доступ к БД на основе технологии ODBC...........................................................................

85

ЛАБОРАТОРНАЯ РАБОТА № 3.

 

Генерирование отчетов..............................................................................................................

88

ЛАБОРАТОРНАЯ РАБОТА № 4.

 

Удаленное соединение с БД Interbase на основе BDE.......................................................

90

ЛАБОРАТОРНАЯ РАБОТА № 5.

 

Работа с компонентами Microsoft SQL Server......................................................................

97

ЛАБОРАТОРНАЯ РАБОТА № 6.

 

Команды создания, модификации и удаления таблиц

106

ЛАБОРАТОРНАЯ РАБОТА № 7.

 

Создание и использование хранимых процедур.................................................................

112

ЛАБОРАТОРНАЯ РАБОТА № 8.

 

Использование триггеров..........................................................................................................

115

ЛАБОРАТОРНАЯ РАБОТА № 9.

 

Администрирование сервера...................................................................................................

119

ЛАБОРАТОРНАЯ РАБОТА № 10.

 

Технология взаимодействия БД SQL-сервера с приложением Visual Basic.................

125

ЛАБОРАТОРНАЯ РАБОТА №11.

 

Использование хранимых процедур

 

в удаленных соединениях с SQL-сервером..........................................................................

134

Лекция 1. ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ

В настоящее время существует достаточно много языков программиро­ вания. Из них наиболее популярными являются Visual Basic и Borland Delphi. Данные языки оснащены встроенными средствами визуального программи­ рования и предоставляют в распоряжение конечного пользователя прототипы объектов, которые могут быть настроены по усмотрению последнего. Данное обстоятельство освобождает пользователя от нудного труда по программиро­ ванию процесса физического восприятия объекта и позволяет сосредоточиться на моделировании его поведенческих функций.

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

1.1. Эволюция технологии программирования

Технология программирования - это совокупность методов, средств разработки (написания) программ и порядок применения этих методов и средств. На рис. 1.1 представлены подходы, на которых базируется тради­ ционная технология программирования.

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

В 1958 году были разработаны первые языки программирования, Фор­ тран и Алгол-58. Программа на Фортране состояла из главной программы и некоторого количества процедур - подпрограмм и функций. Программа на Алголе-58 и его последующей версии Алголе-60 представляла собой единое целое, но имела блочную структуру, включающую главный блок и вложенные блоки подпрограмм и функций. Компиляторы для Фортрана обеспечивали раздельную трансляцию процедур и последующее их объединение в рабочую программу, первые компиляторы для Алгола предполагали, что транслируется сразу вся программа, раздельная трансляций процедур не обеспечивалась.

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

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

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

Сцелью повышения структурности программы были выдвинуты требования

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

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

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

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

всистемном программировании. Практически одновременно с Паскалем был разработан язык Си, в большей степени ориентированный на системное програм­ мирование и относящийся к слабо типизированным языкам.

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

Технология программирования

Операторный

подход

Метод: Операторная схема Л Средство разработки: Составляющие программы Порядок применения:

- составление блок-схемы программы (порядка выполнения операторов и переходов между ними); - написание машинных команд .

Процедурный

подход

Структурный

подход

Метод: Разбиение большой программы на подпрограммы (процедуры) и назначение одной из них главной

Средство разработки: Редакторы процедур, библиотеки процедур и функций и операторные схемы Порядок нрименения:

-составление блок-схемы программы;

-написание кода процедур и функций;

-организация вызова процедур и функций;

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

74

/' Метод: Канонических структур Средство разработки:

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

-составление блок-схемы программы;

-написание кода процедур и функций с использованием канонических схем;

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

Рис. 1.1. Технология традиционного программирования