Введение в разработку распределенных информационных систем. Курс лекций. Оглавление 1. Введение в информационные системы...
60 downloads
251 Views
511KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Введение в разработку распределенных информационных систем. Курс лекций. Оглавление 1. Введение в информационные системы ..............................................................................2 1.1 Общее представление об информационных системах................................................2 1.2 Жизненный цикл информационных систем ................................................................3 1.3 Основные понятия теории реляционных систем баз данных ....................................5 1.4 Архитектура информационных систем ........................................................................8 2. Язык SQL...............................................................................................................................9 2.1 История и стандарты языка SQL...................................................................................9 2.2 Структура языка SQL.....................................................................................................9 2.3 Типы данных SQL и выражения .................................................................................10 2.4.1 Оператор SELECT .....................................................................................................11 2.4.2 Оператор UNION .......................................................................................................15 2.4.3 Оператор INSERT......................................................................................................15 2.4.4 Оператор UPDATE ....................................................................................................16 2.4.5 Оператор DELETE.....................................................................................................17 2.5.1 Оператор CREATE TABLE ......................................................................................17 2.5.2 Оператор ALTER TABLE .........................................................................................22 2.5.3 Оператор DROP TABLE ...........................................................................................23 2.6.1 Оператор GRANT ......................................................................................................23 2.6.2 Оператор REVOKE....................................................................................................24 3. Объекты баз данных...........................................................................................................25 3.1 Представления ..............................................................................................................25 3.2 Хранимые процедуры ..................................................................................................26 3.3 Триггеры........................................................................................................................27 3.4 Транзакции и блокировки............................................................................................29 3.5 Индексы .........................................................................................................................34 4. Языки HTML И DHTML....................................................................................................36 4.1 История и стандарты языка html.................................................................................36 4.2 Структура страницы на языке html.............................................................................37 4.3 Каскадные таблицы стилей .........................................................................................38 4.4 Сценарии JavaScript......................................................................................................42 5. Язык C#................................................................................................................................48 5.1 Платформа .NET ...........................................................................................................48 5.2 Основы языка C# ..........................................................................................................51 5.3 Объектно-ориентированное программирование .......................................................57 5.4 Обработка исключительных ситуаций .......................................................................61 5.5 Интерфейсы...................................................................................................................63 5.6 Делегаты и события......................................................................................................64 5.7 Доступ к данным ..........................................................................................................66 5.8 Разработка web-приложений .......................................................................................77
1. Введение в информационные системы 1.1 Общее представление об информационных системах Информационные системы (ИС) относятся к классу программных продуктов, автоматизирующих работу каких-либо организаций, компаний и учреждений. Можно выделить по крайней мере два свойства, которые являются общими для всех информационных систем: • любая информационная система предназначена для сбора, хранения и
обработки
информации.
Поэтому
в
основе
любой
информационной системы лежит среда хранения и доступа к данным, которая должна обеспечивать уровень надежности хранения и эффективности доступа, соответствующий области применения информационной системы. В большинстве случаев наиболее надежным способом хранения информации является использование базы данных. • любая информационная система предназначена для пользователя, являющего специалистом в той предметной области, на которую ориентирована информационная система, но в большинстве случаев не являющегося специалистом в области информационных технологий. Вследствие этого информационные системы обязаны поддерживать дружественный по отношению к пользователю интерфейс. В зависимости от месторасположения компонент информационные системы делятся на локальные и распределенные. Все компоненты локальной информационной системы размещаются на одном компьютере. Информационная система, компоненты которой распределяются между несколькими компьютерами, называется распределенной.
1.2 Жизненный цикл информационных систем В
основе
деятельности
по
созданию
и
использованию
информационных систем лежит понятие жизненного цикла. Жизненный цикл отражает различные состояния информационной системы, начиная с момента принятия решения о создании системы и заканчивая моментом прекращения
ее
функционирования.
Модели
жизненного
цикла
информационных систем: 1. каскадная модель (модель водопада, последовательная модель) предполагает переход на следующий этап цикла только после полного окончания работ на предыдущем этапе. Основной недостаток данный модели состоит в том, что работающая система, которая может быть продемонстрирована конечному пользователю, появляется только на поздних этапах жизненного цикла и в случае возникновения изменения в требованиях стоимость их учета весьма велика. Каскадная модель в основном использовалась в 70-80 годы прошлого века. 2. спиральная модель (итерационная модель) предполагает создание прототипа информационной системы на самых ранних стадиях проектирования. Каждый виток спирали соответствует созданию новой версии прототипа программного продукта. При таком подходе
к
разработке
удается
предоставить
конечному
пользователю прототип системы для ознакомления и тестирования тогда, когда в системе еще не реализована большая часть функций и внести изменения в проект еще достаточно просто. Каскадная модель стала широко использоваться в конце 80-х годов прошлого века. Традиционный жизненный цикл включает следующие основные этапы: a. анализ требований. На этом этапе необходимо выявить все актуальные
и
потенциальные
потребности
заказчика
информационной
системы,
понять,
какие
потоки
данных
существуют внутри организации заказчика, оценить объемы информации, описать бизнес-процессы и т.д. Анализ требования может носить как неформальный, так и формальный характер. Среди формальных подходов к анализу требований в последнее время все более популярным становиться язык UML (Unified Modeling
Language).
используются
use
Для
case
описания диаграммы
требований (диаграммы
в
UML
вариантов
использования системы). b. проектирование. На этом этапе необходимо дать ответ на вопрос, как система будет реализовывать те требования, которые к ней предъявлены на этапе анализа требований. Проектирование включает в себя выработку архитектуры системы, разбиение системы на подсистемы и распределение функций между ними, проектирование
базы
данных,
определение
требований
к
аппаратным и программным компонентам системы. c. программирование. На этом этапе происходит непосредственное кодирование программных модулей информационной системы. d. тестирование и отладка. На этом этапе происходит тестирование созданных программных модулей и исправление найденных ошибок. В настоящее время принято различать три вида тестов: тесты
модулей,
интеграционные
или
компонентные
тесты,
системные тесты. Тесты модулей включают в себя тестирование отдельных классов, подпрограмм, модулей. Интеграционные тесты предназначены
для
тестирования
взаимодействия
различных
программных модулей системы между собой. Системные тесты тестируют всю систему в целом так, как ее видит конечный пользователь.
e. внедрение и сопровождение. На этом этапе происходит внедрение информационной
системы
у
заказчика
и
последующее
сопровождение работы пользователей с системой.
1.3 Основные понятия теории реляционных систем баз данных База данных - совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ. Реляционная база данных - это база данных, в которой информация представлена в виде двумерных таблиц, сохраняемых в файлах. Таблица состоит из строк, называемых записями, записи состоят из столбцов, называемых полями. Система управления базами данных (СУБД) - это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями. Пользователей СУБД можно разделить на три большие группы: 1. разработчики базы данных отвечают за написание прикладных программ, использующих базу данных; 2. конечные пользователи работают с базой данных либо через некоторую информационную систему, либо пользовательский интерфейс системы управления базами данных; 3. администраторы
базы
данных
обеспечивают
поддержание
работоспособности базы данных, сохранность и безопасность данных, настройку работы базы данных. Базовой архитектурой СУБД является трехуровневая модель, в рамках
которой
СУБД
представляется
состоящей
из
внешнего,
концептуального и внутреннего уровня. На внешнем уровне содержимое СУБД представляется так, как его видит отдельный пользователь. На концептуальном уровне данные СУБД описываются в обобщенной модели
предметной области, для которой создается информационная система. Внутренний уровень - это собственно данные, расположенные в файлах. В ведении СУБД также находится словарь данных, содержащий сведения обо всем, что хранится в базе данных (имена всех таблиц и представлений, хранимых процедур и триггеров, учетные записи пользователей СУБД и т.п.). Сведения такого рода принято называть метаданными. Реляционная модель данных основывается на математических принципах теории множеств и математической логике. Эти принципы были впервые использованы для моделирования данных в 60-х годах прошлого века Коддом. Реляционная модель определяет, каким образом данные могут быть представлены (структура данных), каким образом данные могут быть защищены от некорректных изменений (целостность данных) и какие операции могут быть выполнены с данными (операции с данными). Основные понятия реляционной модели: • все данные концептуально представляются как упорядоченное набор строк и столбцов, называемых отношением; • все данные являются скалярными; • строка
данных
называется
кортежем,
количество
кортежей
называется кардинальным числом; • каждый столбец в кортеже называется атрибутом, количество атрибутов называется степенью отношения; • отсутствие информации описывается значением NULL; • потенциальный ключ K для отношения R - это подмножество множества
атрибутов
R,
всегда
обладающее
свойством
уникальности (т.е. нет двух кортежей в отношении R с одинаковым значение K) и свойством не избыточности (т.е. никакое из подмножеств
K
не
обладает
свойством
уникальности).
Потенциальный ключ, состоящий из более чем одного атрибута, называется составным, а из одного - простым. Первичный ключ -
это потенциальный ключ, по которому физически упорядочены кортежи в отношении. • внешний ключ определяется следующим образом. Пусть R2 некоторое отношение. Тогда внешний ключ FK в отношении R2 это такое подмножество множества атрибутов R2, что существует отношение R1 с потенциальным ключом K и значение FK в любом кортеже R2 всегда совпадает со значением K некоторого кортежа в R1. Ограничение, по которому значения внешнего ключа должны быть адекватны значениям соответствующего потенциального ключа, называют ссылочным ограничением. Соответственно, под ссылочной целостностью понимают требование того, чтобы в базе данных не было нарушений ссылочных ограничений. Следующие операции допустимыми над данными в реляционной модели: • выборка
возвращает
отношение,
содержащие
все
кортежи
заданного отношения, удовлетворяющие определенным условиям; • проекция
возвращает
отношение,
содержащие
все
кортежи
заданного отношения после исключения из него некоторых атрибутов; • произведение
возвращает
отношение,
содержащие
кортежи,
которые являются всеми возможными сочетаниями кортежей, принадлежащих двум исходным отношениям; • объединение возвращает отношение, содержащие все кортежи, принадлежащие двум исходным отношениям; • соединение возвращает отношение, кортежи которого являются соединением
двух
кортежей,
принадлежащих
исходным
отношениям и имеющим общее значение для одного или более атрибутов исходных отношений; при этом общее значение атрибутов встречается в результирующем кортеже только один раз.
1.4 Архитектура информационных систем Файл-серверная архитектура: • сервер - хранит файлы и обеспечивает совместный доступ к ним со стороны пользователей; • клиент - предоставляет пользовательский интерфейс, обеспечивает работу бизнес-логики и системы управления базами данных. Двухуровневая клиент-серверная архитектура: • сервер - обеспечивает работу системы управления базами данных и реализует часть функций бизнес-логики; • клиент - предоставляет пользовательский интерфейс и реализует часть функций бизнес-логики. Многоуровневая клиент-серверная архитектура: • сервер базы данных - обеспечивает работу системы управления базами данных; • сервер приложений - реализует функции бизнес-логики; • клиент - предоставляет пользовательский интерфейс. Одним из наиболее популярных в настоящее время вариантов реализации
многоуровневой
архитектуры
является
построение
Internet/Intranet приложений. В качестве клиента в таких приложениях выступает браузер. За генерацию пользовательского интерфейса отвечает приложение,
выполняющееся
на
web-сервере
взаимодействие клиента с сервером приложений.
и
обеспечивающее
2. Язык SQL 2.1 История и стандарты языка SQL SQL (Structured Query Langauge - структурированный язык запросов) является стандартным языком, используемым для работы с реляционными базами данных. Он позволяет исключить большую работу, необходимость которой возникает при попытке использовать языка программирования общего назначения для разработки функций работы с базой данных. Язык SQL был разработан в конце 70-х годов в компании IBM и был впервые реализован в реляционной СУБД IBM System R. В дальнейшем, благодаря своей элегантности, независимости от специфики компьютера и поддержке лидерами в области технологии реляционных баз данных, SQL стал и в обозримом будущем останется стандартом "дефакто" для всех реляционных систем обработки данных. Первый международный стандарт языка SQL был принят в 1989 году ANSI. Этот стандарт называют SQL/89. Подавляющее большинство СУБД поддерживают этот стандарт полностью. В связи с развитием информационных
технологий
через
некоторое
время
возникла
необходимость расширения стандарта. В 1992 году был принят новый стандарт SQL/92. Затем в 1999 году был принят стандарт SQL/99 и, наконец, самый последний стандарт языка SQL был принят в 2003 году и носит название SQL/2003. Стоит, правда, сказать о том, что не все СУБД ограничиваются полной поддержкой стандарта и часто добавляют в язык SQL
какие-то
специфичные
конкурентоспособности СУБД.
2.2 Структура языка SQL
возможности
с
целью
повышения
В структуре языка SQL выделяют три подмножества операторов языка: 1. язык определения данных (DDL, Data Definition Language) подмножество операторов языка SQL, которое обеспечивает определение данных, хранящихся в базе данных; 2. язык
манипулирования
данными
(DML,
Data
Manipulation
Language) - подмножество операторов языка SQL, используемых для выборки, добавления и удаления данных для объектов, определенных с помощью DDL; 3. язык управления данными (DCL, Data Control Language) подмножество
операторов
языка
SQL,
используемых
для
управления правами доступа к объектам базы данных.
2.3 Типы данных SQL и выражения Тип данных - это атрибут, определяющий тип информации, которую может содержать объект. У всех полей, переменных, хранимых процедур есть определенные типы данных. Основные типы данных перечислены ниже (Microsoft SQL Server 2000): • char(n) - символьные строки постоянной длины в n символов; • varchar(n) - символьные строки переменной длины, максимальная длина n символов; • datetime, smalldatetime - дата и время; • float, real - числа с плавающей запятой; • int, smallint - целые числа. Выражение - это комбинация идентификаторов, значений и операторов, которые сервер СУБД может обработать, чтобы получить результат. Основные виды операторов представлены ниже:
• сравнение - сравнивает значение с другим значением или выражением (>, >=,