Основы работы с базами данных


Содержание

Принципы работы баз данных

Читайте также:

  1. A. Центр координации спасательных работ, инициировавший прекращение работы, должен передать сообщение по УБПЧ об отмене команды «SILENCE FINI».
  2. I Настройка NanoCADа для работы
  3. I. Общие понятия контрольно — ревизионной работы в ПФР
  4. I. Особенности организации самостоятельной работы
  5. I. Сортировка данных
  6. I. Этические принципы психолога
  7. I.2.3. Основные виды работы школьного психолога.
  8. I.3.1. Особенности диагностической работы школьного психолога в отличие от психолога-исследователя.
  9. II. Во время работы.
  10. II. ВЫБОР ТЕМЫ КУРСОВОЙ РАБОТЫ.
  11. II. Дидактические принципы.
  12. II. Правила оформления выпускной квалификационной работы

Работа с СУБД

Язык IL

Язык ST

Текстовый язык высокого уровня, по синтаксису ориентированный на Pascal. Язык предоставляет булевы и арифметические операторы, а также конструкции структурного программирования:

VAR X1, X2, X3, Y: END VAR

IF X1=TRUE THEN X2:=FALSE: END IF:

IF X3=TRUE THEN X2:=FALSE ELSE X2:=TRUE: END IF:

Y:=(X1 AND NOT X2) OR X3

END FUNCTION BLOCK

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

Языки IEC 1131-3 содержат богатый набор стандартных функций:

— числовые (ADD, SUB, MOD, ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN и т.д.);

— сравнения (INSERT, DELETE, REPLACE, FIND и другие);

— а также функции, определяемые производителем и пользователем.

— дифференцирование переднего и заднего фронтов (R.TRIG, F.TRIG);

— счетчики (TP, TON, TOF, RTC);

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

— битовые строки (BOOL, TYPE, WORD, DWORD, LWORD);

— целые (INT, SINT, DINT, LINT);

— беззнаковые целые (USINT, IDINT …);

— вещественные (REAL, LREAL);

— временные (TIME, DATE, TIME OF DAY, DATE OF TIME);

— строки символов (STRING).

Имеется возможность задавать также массивы, структуры и т.д.

Одна и та же программа для PLC может быть написана на разных языках, а также на смеси языков. Например, одни функциональные блоки на FBD описываются с помощью LD, другие – на ST, FBD и т.д.

Все языки поддерживаются соответствующим ПО, наиболее распространенным из которых является ISaGRAF фирмы CJ International. Этот программный продукт представлен в виде двух частей: набора средств разработки и исполняемого на целевом PLC ядра-интерпретатора. Набор средств разработки исполняется на компьютере проектировщика и состоит из редактора, отладчика и препроцессора (подготавливает описанный алгоритм управления к виду, понятному интерпретатору).

Этот набор позволяет тестировать алгоритм в режиме эмуляции и получать листинг алгоритма на языке его описания.

После создания и отладки пользовательская программа загружается в память PLC для исполнения. В PLC ядро-интерпретатор транслирует пользовательский алгоритм.

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

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

Пример таблицы БД приведен на рисунке 3.10.

Номер замера Скважина Дата Время Дебит
02.07.2003 … 19:50:20 …

Функции БД:

— добавление новой информации;

— добавление новых таблиц;

— изменение информации в существующих таблицах;

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

СУБД выполняет функции:

— управление данными непосредственно в БД, находящейся на сервере;

— управление данными, находящимися в памяти компьютера – функция, связанная с тем, что СУБД работают с БД большого размера; в целях ускорения работы СУБД используется буферизация данных в памяти каждого компьютера;

— управление транзакциями – функция, которая производит ряд операций над БД как над единым целым. Транзакция – манипуляция над данными (добавление, изменение, удаление, запрос). Если транзакция успешно выполняется, то СУБД вносит соответствующие изменения в БД, в противном случае БД не изменяется;

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

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

Для работы с БД, как правило, используется архитектура «клиент — сервер» [41]. Основу СУБД составляет сервер БД – программа, осуществляющая комплекс действий по управлению данными. В качестве клиента БД может выступать другая программа, работающая на том же компьютере, что и сервер, либо на другом, связанном с компьютером-сервером посредством сети. Таким образом, данная архитектура включает, как минимум, три компонента:

— сервер БД, который, собственно, и является СУБД;

— клиенты БД – программы или компьютеры с соответствующими программами, выполняющие запросы к серверу;

— сеть или коммуникационное программное обеспечение (рисунок 3.11).

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

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

Связи между таблицами осуществляются посредством первичных ключей. На рисунке 3.12 приведен пример БД, состоящей из трех таблиц («Технологические объекты», «Датчики» и «Измерения»). Обозначены поля: N_об – номер технологического объекта, N_дтч – номер датчика.

Связи (отношения между таблицами) могут быть идентифицирующие и неидентифицирующие. Если запись в таблице-потомке однозначно определяется своей связью с таблицей-родителем, то отношение между этими таблицами является идентифицирующим. В этом случае первичный ключ таблицы-родителя становится первичным ключом (или частью первичного ключа) таблицы-потомка. Например, отношение «производят» на рисунке 14 является идентифицирующим для таблицы-родителя «Датчики» и таблицы-потомка «Измерения», поэтому первичный ключ таблицы-родителя (поле «N_дтч») становится частью составного ключа таблицы-потомка. Отношение «содержат» является неидентифицирующим, поэтому первичный ключ таблицы-родителя «Технологические объекты» (поле «N_об») становится обычным полем таблицы-потомка «Датчики».

Дата добавления: 2015-07-02 ; Просмотров: 815 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Начало работы с базами данных

В этом курсе:

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

Важно: Веб-приложения Access отличаются от классических баз данных. В этой статье не рассматривается проектирование веб-приложений.

Понятия и термины

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

Реляционные базы данных

База данных, в которой данные разделены на таблицы по типу электронных. Каждая таблица включает данные по одному объекту, например по клиентам (одна таблица) или товарам (другая таблица).

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

Значение, которое обеспечивает уникальность каждой записи. Допустим, есть два клиента с одинаковыми именами, например Юрий Богданов. Но у одного из них первичный ключ записей — 12, а у другого — 58.

Общие связи между таблицами. Например, у одного клиента может быть несколько заказов. Родительские таблицы содержат первичные ключи. Дочерние таблицы содержат внешние ключи, т. е. значения первичного ключа, которые показывают, как записи дочерней таблицы связаны c записями родительской. Эти ключи связываются отношениями.

Что понимать под хорошим проектированием базы данных?

В основе проектирования хорошей базы данных лежат два принципа:

Избегайте повторяющихся сведений (избыточных данных). Они занимают много места на диске и повышают вероятность ошибок.

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

Чтобы избежать этих проблем:

Разделяйте информацию в базе данных по таблицам для отдельных объектов. Избегайте повторения информации в нескольких таблицах. (Например, имена клиентов должны находиться только в одной таблице.)

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

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

Проектируйте базу данных с учетом своих требований к обработке данных и созданию отчетов по ним.

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

Шаг 1. Определение назначения базы данных

Прежде чем начать, сформулируйте цель базы данных.

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

Шаг 2. Поиск и упорядочение необходимых сведений

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

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

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

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

Предположим, вы даете клиентам возможность подписаться на периодическую рассылку (или отказаться от нее) и хотите распечатать список подписавшихся пользователей. Вам нужно создать столбец «Отправка почты» в таблице «Клиенты» с допустимыми значениями «Да» и «Нет».

Для тех, кто хочет получать рассылку, вам нужно добавить электронный адрес, что также требует отдельного поля. Если вы хотите использовать соответствующее обращение к получателю (например, «Уважаемый» или «Уважаемая»), добавьте поле «Обращение». Если в письмах вы хотите обращаться к клиентам по имени, добавьте поле «Имя».

Совет: Не забывайте разбивать данные на наименьшие единицы, например имя и фамилию в таблице «Клиенты». Вообще, если вы хотите выполнять сортировку, поиск, вычисления или отчет на основе элемента данных (например, фамилии клиента), следует поместить этот элемент в отдельное поле.

Шаг 3. Разделение данных по таблицам

Разделите элементы данных на основные объекты, например товары, клиенты или заказы. Каждый объект выносится в таблицу.

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

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

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

Чтобы понять, почему чем больше таблиц, тем лучше, рассмотрим следующую таблицу:

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

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

Наконец, предположим, у вас есть только один товар, поставляемый компанией Coho Winery, и вы хотите удалить этот товар, но сохранить имя и адрес поставщика. Как удалить запись о товаре, не потеряв сведений о поставщике, с такой структурой базы данных? Это невозможно. Так как каждая запись содержит информацию о товаре вместе с данными о поставщике, их невозможно удалить по отдельности. Чтобы разделить эти сведения, необходимо сделать из одной таблицы две: одну — для сведений о товаре, другую —для сведений о поставщике. И только после этого удаление записи о товаре не будет приводить к удалению сведений о поставщике.

Шаг 4. Превращение элементов данных в столбцы

Определите, какие данные необходимо хранить в каждой таблице. Эти отдельные элементы данных становятся полями в таблице. Например, таблица «Сотрудники» может содержать такие поля, как «Фамилия», «Имя» и «Дата приема на работу».

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

Чтобы определить, какие данные нужно отследить в таблице, используйте ранее созданный список. Например, таблица «Клиенты» может содержать такие поля: «Имя», «Фамилия», «Адрес», «Отправка почты», «Обращение» и «Электронный адрес.» Каждая запись (клиент) в таблице содержит один и тот же набор столбцов, поэтому по каждому клиенту можно хранить одинаковую информацию.

Создав свой первый список, периодически проверяйте и дорабатывайте его. Не забудьте разбить данные на наименьшие возможные поля. Например, если ваш исходный список содержит поле «Адрес», разбейте его на поля «Улица», «Город», «Область/республика», «Индекс». Или, если у вас международная клиентская сеть, можно использовать даже большее количество полей. Таким образом вы сможете выполнять рассылку в правильном формате или создавать отчеты о заказах по штатам или областям.

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

Шаг 5. Задание первичных ключей

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

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

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

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

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

Идентификатор для каждой записи всегда уникален. Повторяющиеся значения в первичном ключе не допускаются.

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

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

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

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

Вам нужны дополнительные возможности?

Эффективная база данных требует продуманной структуры. В этом видео вы узнаете, что такое базы данных, в частности, РЕЛЯЦИОННЫЕ базы данных, которые можно создавать в Access. Вы узнаете, как организовать базу данных с помощью ТАБЛИЦ и как создать связь между таблицами с помощью КЛЮЧЕЙ.

Итак, что же такое база данных? В широком смысле база данных — это любой упорядоченный набор данных. Базой данных можно назвать кулинарную книгу, а также этот простой список имен и номеров телефонов в Excel.

Следующий вопрос: чем отличается база данных Access? Зачем ее использовать? Ответ кроется в РЕЛЯЦИОННОЙ СТРУКТУРЕ ТАБЛИЦ. Вот что это значит.

Данные упорядочиваются в виде ТАБЛИЦ. Таблицы связываются друг с другом с помощью ОБЩИХ ПОЛЕЙ, называемых КЛЮЧАМИ.

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

Ключи также позволяют связывать таблицы благодаря использованию одних и тех же значений в нескольких ПОЛЯХ. Например, здесь значение ключа, назначенного Григорию, связано с двумя телефонными номерами, то есть это его номера. Значение же ключа, назначенного Елизавете Поляковой, связано с тремя полями, то есть это ее телефонные номера.

В базе данных имеются ключи двух типов. Значения ключей задаются в ЭТОМ поле и используются в ЭТОМ конечном поле. Исходное поле называется ПЕРВИЧНЫМ КЛЮЧОМ, а конечное — ВНЕШНИМ КЛЮЧОМ. Однако само по себе наличие таких полей еще не означает, что они связаны. Вам необходимо создать связь между таблицами.

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

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

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

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

Итак, теперь вам известны три основных этапа разработки базы данных. Первый этап — это сбор всех данных, которые необходимо хранить. В этом примере нам требовались имена клиентов, их номера телефонов и категории этих номеров.

Второй этап — определение данных, которые могут повторяться. В этом примере это имена клиентов.

Наконец, третий этап — выделение таких данных в отдельную таблицу.

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

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

Основы работы с базами данных

Умение обращаться с файлами данных — чуть ли не одна из самых важных ступений в обучении программированию на Visual Basic! Здесь я постараюсь выложить только самые основные приёмы работы с объектом Data.

Прежде чем начать использовать базу данных её нужно сначала создать ;)!

1.Создайте стандартный проект.

2.Кликните на ToolBox’e на кнопку Data и натяните на форму так, чтобы полоска была не очень широкой и в самом низу формы.

3.Теперь создайте на форме четыре кнопки и назовите их (по порядку создания): cmdAdd, cmdDelete, cmdUpdate, cmdExit. Свойствам Caption дайте эти же имена, только без «cmd».

4.Создайте на форме три текстовых поля одинаковой длины.

5.Теперь надо связать объект Data с какой-нибудь базой данных. С какой? С той которая есть у всех владелцев VBasic’a — biblio.mdb! Активируйте объект Data и в свойствах, в DatabaseName выберите этот файл. Теперь там же, но в поле RecordSource надо выбрать раздел «Authors». Этим мы выберем только нужную часть базы данных.

6.Выделите первое текстовое поле и в свойствах, в DataSource выберите единственную в списке, созданную нами базу данных Data1, т.е. тем самым мы связываем это текстовое поле с объектом Data1. А в поле свойств DataField выберите «Au_ID». Теперь задача этого поля отображать идентификационный номер каждого автора! То же самое проделайте со следующими двумя другими полями, но в DataField вместо «Au_ID» выберите «Author» и «Year Born».

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

7.Щёлкните два раза на кнопку Add и введите:

8.Следующая кнопка сохраняет внесённые изменения в базе данных. Сделайте двойной клик по кнопке Update и введите:

9.Теперь самое лёгкое — удаление записей. Ведь правильно говорят — «Ломать — не строить!» :-))). Делаем двойной щелчок по кнопке Delete и вводим:

10.И теперь для кнопки Exit просто введите:

Всё! А тепeрь Вы создали почти настоящую программу с базой данных.

10.Запустите проект. Нажмите на правую кнопку >. Содержание полей сменилось! Теперь нажмите на правую кнопку >|. В полях появились самые последние записи! То же самое будет происходить при нажатии на левые кнопки |11.Теперь нажмите кнопку «Add».

12.Первое поле НЕ испраляйте, во второе ввидите, например, ваше имя, а в третье год рождения.

13.Теперь сохраните эту запись, нажав кнопку «Update».

14.Знайте, ваша запись теперь сохранена на самом последнем месте! Можете снова «прогуляться» по записям и вернутся наконец с помощью правой кнопки >|. Ваша запись на месте.

15.Теперь нажмите на кнопку Delete. запись исчезла! НО! В этом случае мы НЕ можем удалять записи сделанные не нами.

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

16.создайте на форме ещё две кнопки с именами cmdMBM и cmdSMB со следующими надписями: Make the Bookmark и Show the Bookmark.

17.Теперь в разделе формы General Declarations объявите переменную, которая будет содержать идентификатор актуальной записи:

18.Теперь делаем двойной щелчок по кнопке cmdMBM и вводим:

19.Теперь делаем двойной щелчок по кнопке cmdSBM и вводим:

20.Снова запустите проект и прощёлкайте несколько записей.

21.Нажмите кнопку «Make the Bookmark». Так, теперь пролистайте ещё дальше или вернитесь, вобщем уйдите от этой записи.

22.Щёлкните на кнопку «Show the Bookmark».

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

А теперь я расскажу немного о поисках записей в базе данных. Представьте себе, что Вам нужно найти конкретное имя автора из тысяч других. WOW. :-)) Представили? Ну, так вот листать — вроде совсем не интересно. Нужно воспользовать одним из способов нахождения :

FindFirst, FindLast, FindNext или FindPrevious. В следующей таблице представлены ихзначения:

Метод Пояснение
FindFirst Ищет первую запись в БД
FindLast Ищет последнюю запись в БД
FindNext Ищет каждую следующую запись в БД
FindPrevious Ищет предыдущую запись в БД

23.Создайте кнопку cmdFind c надписью «Find» и впишите:

24.Теперь запустите проект. Выищите какое-нибудь имя из БД и нажмите кнопку Find.

25.Введите имя и нажмите ОК.

Имя появилось! Чтобы искалось имя с конца БД слово FindFirst надо поменять на FindLast. А если Вы хотите проверить БД на наличие одного имени несколько раз надо применять слово FindNext и каждый раз вызывать поиск!

Основы работы с базами данных

Выбери свою IT специальность

Будь в курсе новостей подпишись на нас в соцсетях

Выбери свою IT специальность

Выбери свою IT специальность

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

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

Видео курсы ITVDN по работе с базами данных:

Тренажер по курсу SQL Essential

Используйте тренажер ITVDN для формирования практических навыков! В практикуме по курсу SQL Essential вам нужно будет выполнить 41 задачу. Вы можете использовать подсказки, но учтите – при этом у вас будут сниматься баллы. Наилучшего результата прохождения практикума по SQL — 645 баллов – на данный момент достигли только 4 пользователя ITVDN. Попробуйте свои силы.

SQL. Нормальные отношения

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

Запись вебинара «SQL vs NoSQL»

В этом видео Богдан Ромашка ознакомит вас с разными типами как самих БД, так и СУБД.

Содержание вебинара:

  1. Краткое рассмотрение СУБД
  2. Основные модели БД. Реляционная модель. Бессхемный подход (NoSQL)
  3. Популярные СУБД. Реляционные СУБД. NoSQL (NewSQL) СУБД
  4. Сравнение SQL и NoSQL БД.

Смотрите запись вебинара.

Основы реляционных баз данных и языка SQL

Содержание вебинара:

  • Особенности реляционных баз данных. Как таблица превратилась в отношение?
  • Классификация операторов SQL.
  • Пример создания простой базы данных сотрудников в среде MS-SQL.

Смотрите запись вебинара.

Интенсив по LINQ. Упрощаем работу с данными в С#/.NET

Автор вебинара Юрий Оборожный познакомит вас с такой известной технологией как LINQ. В видео рассмотрены основы LINQ и ее сфера использования, знакомство с фильтрацией, объединением, преобразованием и множеством других методов, а также стратегии проецирования, построения сложных запросов, производительности. Вы узнаете, что такое методы расширения и анонимные типы, какие есть best practices написания запросов, получите представление об интерпретируемых запросах к удалённым источникам данных. Запись вебинара.

28 августа День открытых дверей в StartIT

Кто такой QA и “с чем его едят”? Этим вопросом задаются многие, кто планирует начать свою карьеру в тестировании. На Дне открытых дверей в StartIT вы узнаете, чем занимаются QA и главное — как ими становятся. Спикер встречи Константин Клюев поделится своей success story. Расскажет почему и как пришел к решению стать тестировщиком, как обучался этому и как прошел путь от от Junior QA до QA Lead/BA/PM. Подробности встречи.

Курса FrontEnd Developer в CyberBionic Systematics

21 августа в CyberBionic Systematics начнется курс FrontEnd Developer. Формируются 2 группы – утренняя (9:00 до 11:00) и вечерняя (с 19:00 до 21:00). Занятия будут проходить три раза в неделю по 2 часа. Всем участникам курса ITVDN дарит 15 видео курсов по FrontEnd технологиям. Вы научитесь создавать полноценные веб сайты, изучите язык разметки страниц, каскадные таблицы стилей, язык программирования JavaScript, библиотеку JQuery, и Angular JS, а также разработаете несколько проектов, которые Вы сможете выложить на гитхаб, или показать своему работодателю. Программа курса и регистрация.

Воспользуйтесь промо-кодом 3GHCF2C и получите скидку 10% на любой тип подписки ITVDN (кроме QA и PM). Срок действия промо-кода с 9 до 17 августа 2020 года.

C наилучшими пожеланиями, команда ITVDN
Оставайтесь с нами и приводите друзей!

ПРИСОЕДИНЯЙТЕСЬ К НАМ В СОЦИАЛЬНЫХ СЕТЯХ!

Copyright © 2020 ITVDN. Все права защищены. Вы получили это сообщение, так как являетесь подписчиком портала ITVDN и дали согласие на получение маркетинговых рассылок.

Основы работы с базами данных Под базой данных

Основы работы с базами данных Под базой данных понимается некоторая унифицированная совокупность данных, совместно используемая персоналом/населением группы, предприятия, региона, страны, мира. . . Требования к базам данных Хорошо спроектированная база данных: 1. Удовлетворяет всем требованиям пользователей к содержимому базы данных. 2. Гарантирует непротиворечивость и целостность данных. 3. Обеспечивает естественное, легкое для восприятия структурирование информации. 4. Удовлетворяет требованиям пользователей к производительности базы данных 1

1. 2. 3. Шаги проектирования базы данных: Определить информационные потребности базы данных. Проанализировать объекты реального мира, которые необходимо смоделировать в базе данных. Сформировать из этих объектов сущности и характеристики этих сущностей (например, для сущности «деталь» характеристиками могут быть «название», «цвет», «вес» и т. п. ) и сформировать их список. Поставить в соответствие сущностям и характеристикам — таблицы и столбцы (поля) в нотации выбранной Вами СУБД. 2

4. 5. 6. 7. Определить атрибуты, которые уникальным образом идентифицируют каждый объект. Выработать правила, которые будут устанавливать и поддерживать целостность данных. Установить связи между объектами (таблицами и столбцами), провести нормализацию таблиц. Спланировать вопросы надежности данных и, при необходимости, сохранения секретности информации. 3

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

Илон Маск рекомендует:  Что такое код getmoderange

Архитектура клиент/сервер Система построенная по принципу клиент/сервер состоит из трех компонентов: q сервер БД – управляет хранением данных, доступом, защитой, резервным копированием, отслеживает целостность данных и выполняет запросы клиента; q клиенты – представляют собой различные приложения пользователей и выполняющие запросы к серверу; q сеть и коммуникационное программное обеспечение – осуществляющее взаимодействие между клиентом и сервером с помощью сетевых протоколов. 5

Основные концепции реляционных баз данных В реляционной теории одним из главных является понятие отношения: Пусть даны n множеств D 1, D 2, . . . , Dn. Тогда R есть отношение над этими множествами, если R есть множество упорядоченных наборов вида , где d 1 — элемент из D 1, d 2 элемент из D 2, . . . , dn — элемент из Dn. При этом наборы вида называются кортежами, а множества D 1, D 2, . . . , Dn доменами. Каждый кортеж состоит из элементов, выбираемых из своих доменов. Эти элементы называются атрибутами, а их значениями атрибутов. 6

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

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

Отношение, на первичный ключ которого ссылается внешний ключ другого отношения, называется master-отношением, или главным отношением; а отношение, от которого исходит ссылка, называется detail-отношением, или подчиненным отношением. После назначения такой ссылки СУБД имеет возможность автоматически отслеживать вопросы «не нарушения» связей между отношениями. Реляционную БД можно рассматривать как набор отношений, связанных между собой. Связь в данном случае — это ассоциирование двух или более отношений. Существуют следующие основные виды связей: один к одному; один ко многим; многие к одному; многие ко многим. 10

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

Связь «многие к одному» предполагает, что в каждый момент времени множеству элементов А соответствует 1 элемент В. Например: несколько студентов представляют собой студенческую группу. А В 12

Связь «многие ко многим» состоит в том что в каждый момент времени множеству элементов А соответствует множество элементов В. Этот тип связи в реляционных БД непосредственно «не поддерживается. Пример: у студентов учебные занятия по дисциплинам ведут множество преподавателей. 13

Реляционная алгебра Основой реляционной модели БД является реляционная алгебра, основанная на теории множеств и рассматривающая специальные операторы над отношениями. Набор алгебраических операций состоит из восьми основных отношений: o выборка; o проекция; o объединение; o пересечение; o вычитание; o произведение; o соединение; o деление. 14

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

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

Вычитание Отношение являющее разностью двух отношений, включает все кортежи, входящие в первое отношение и одновременно такие, что ни один из них не входит в отношение, являющееся вторым. Произведение А Б Г В Д А А Б Б В В Г Д Г Д При выполнении прямого произведения двух отношений получаются отношение, кортежи которого являются сочетанием кортежей первого и второго отношения. 17

Соединение А Г Г Б Г В Д Ж А Г Ж Д З Б Г Ж Е В Д З И При соединении двух отношений по некоторому условию образуется результирующее отношение, кортежи которого являются сочетанием кортежей первого и второго отношений, удовлетворяющим этому условию. Деление А Г А Д Г А Е А Д Б Д В Е В Д Результат операции – отношение, состоящее из кортежей, включающих значение первого атрибута кортежей первого отношения, причем таких, что множество значений второго атрибута совпадает со множеством значений второго атрибута. 18

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

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

Выделяют следующую последовательность нормальных форм: • первая нормальная форма (1 НФ); • вторая нормальная форма (2 НФ); • третья нормальная форма (ЗНФ); • нормальная форма Бойса-Кодда (НФБК), • четвертая нормальная форма (4 НФ). • пятая нормальная форма, или нормальная форма проекции-соединения (ЗНФ или НФПС) Основные свойства НФ: • каждая следующая НФ в некотором смысле лучше предыдущей; • при переходе к следующей НФ свойства предыдущих нормальных форм сохраняются. 21

Приведение к первой нормальной форме Когда поле в данной записи содержит более одного значения для каждого вхождения первичного ключа, такие группы данных называются повторяющимися группами. 1 НФ не допускает наличия таких многозначных полей. Пример: Таблица ОТДЕЛ №_отдела 100 600 100 Название Руководитель продаж Иванов разработок Петров продаж Иванов Бюджет 1000000 11000000 Расположение Москва Зеленоград Тверь Калуга Для приведения этой таблицы к 1 НФ мы должны устранить атрибут Расположение из таблицы ОТДЕЛ 22

Создадим новую таблицу РАСПОЛОЖЕНИЕ _ОТДЕЛОВ, в которой определить первичный ключ, являющийся комбинацией номера отдела и его расположения (№_отдела+Расположение). Теперь для каждого расположения отдела существуют различные строки. Табл. РАСПОЛОЖЕНИЕ_ОТДЕЛОВ №_отдела Расположение 100 Москва 100 Зеленоград 600 Тверь 100 Калуга 23

Приведение ко второй нормальной форме Следующий шаг — удалении всех неключевых атрибутов, которые зависят только от части первичного ключа. Такие атрибуты называются частично зависимыми. Неключевые атрибуты заключают в себе информацию о данной сущности предметной области, но не идентифицируют ее уникальным образом. Пример: Табл. ПРОЕКТ №_ раб 28 17 06 ИД_проек Фамилия Наз_проек ОП_ проек Продукт БРЖ Иванов Биржа программа ДОК Петров Документы программа УПР Сидоров Управление адм. меры 24

Приведение к третьей нормальной форме Третий этап процесса приведения таблиц к нормальной форме состоит в удалении всех неключевых атрибутов, которые зависят от других неключевых атрибутов. Каждый неключевой атрибут должен быть логически связан с атрибутом (атрибутами), являющимся первичным ключом. Пример: Табл. ПРОЕКТ ИД_проек БРЖ ДОК УПР №_ руков Телефон Назв_ проек 02 2 -21 Биржа 12 2 -43 Документы 08 2 -56 Управление Продукт программа адм. меры 25

Табл. ПРОЕКТ ИД_проек Руководитель Назв_ проек БРЖ 02 Биржа ДОК 12 Документы УПР 08 Управление Продукт программа адм. меры Табл. РАБОТНИКИ №_ раб 02 08 Фамилия Иванов Петров №_ отдела 100 200 Код. ПРФ Телефон инж 2 -69 мндж 2 -56 23 Сидоров 200 мндж -45 26

Основы работы с базами данных (БД). Как создавать базы данных и таблицы баз данных. Как подключиться к БД через PHP. Инструкция INCLUDE

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

Сразу хочу заметить, что тему создания базы данных мы уже затрагивали в статье «Установка Joomla на Denwer. Создание базы данных и пользователей БД. Перенос Joomla на хостинг». Исходя из этого, в этой статье мы пропустим пункт о создании пользователей баз данных. Если же вам интересен данный момент, то узнать о нем вы можете из статьи, ссылка на которую находится чуть выше.

Создание базы данных через phpMyAdmin

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

Первым делом запускаем программу Denwer (виртуальный сервер). Далее переходим по адресу http://localhost/Tools/phpMyAdmin и в открывшемся окне начинаем создавать новую базу данных. Для этого заполняем поля как показано на картинке.

  • Имя базы данных – прописываем английскими буквами имя нашей базы данных.
  • Сравнение – указываем сравнение для нашей БД. Если кодировка сайта UTF-8 – указываем utf8_general_ci. Если же сайт работает с кодировкой CP 1251 – ставим cp1251_general_ci.

После введения всех данных сохраняем результат и создаем новую БД. В результате этого слева в меню phpMyAdmin появится еще одна база данных с нашим именем.

Создание таблиц в базе данных через phpMyAdmin. Добавление информации в БД через phpMyAdmin

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

  • Имя – указываем имя таблицы базы данных.
  • Поля – указываем количество полей в создаваемой таблице базы данных.

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

  • Поле – даем имя нашим полям.
  • Тип – указываем тип данных, которые будут храниться в выбранном поле. Более подробную информацию о типах данных вы можете найти в интернете, воспользовавшись поиском по запросу «Типы данных MySQL».
  • Длины/Значения – указываем длину будущего поля. Например, если выбран тип VARCHAR, который может хранить до 255 знаков, то в данном поле нужно будет указать длину поля в пределах от 0 до 255 символов. В нашем случае для имени и фамилии, на мой взгляд, вполне будет достаточно 100 символов.
  • Сравнение – выбираем сравнение для поля. Обычно, выбирается тип сравнения, который отвечает кодировке базы данных.

Дополнительно – можно указать дополнительные свойства. В нашем случае для поля id можно выбрать свойство auto_increment, которое отвечает за автоматическое изменение счетчика. Также для поля ставим переключатель в положение «Первичный ключ», которое говорит о том, что в данном поле значения не могут повторяться.

Остальные поля можно оставить как есть по умолчанию.

После внесения всех данных сохраняем результат и создаем новые поля. Теперь при выборе таблицы слева в меню phpMyAdmin у нас откроется вкладка «Структура» в которой мы можем просмотреть всю информацию по созданным полям.

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

В них мы указываем, сколько полей мы хотим добавить и в какое место таблицы. По умолчанию все поля будут добавляться в конец таблицы БД.

Ручное добавления информации в базу данных через phpMyAdmin

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

В поле «Значения» вносим информацию, которую мы хотим добавить в базу данных. В нашем случае это имя и фамилия. Поле id оставляется пустым, так как данное поле заполняется автоматически (свойство auto_increment). После внесения всей необходимой информации не забываем сохранить результат.

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

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

Подключение к базе данных через PHP. Инструкция INCLUDE

Для того чтобы подключиться к базе данных через PHP нужно сделать следующее.

  1. Подключиться к MySQL серверу и получить специальный идентификатор.
  2. Выбрать базу данных с которой мы хотим работать.

Для того чтобы подключиться к серверу MySQL в PHP есть специальная функция mysql_connect(), которая имеет следующий синтаксис.

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

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

В нашем случае весь процесс соединения с сервером MySQL и выбор базы данных для работы будет выглядеть следующим образом.

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

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

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

В кавычках прописываем путь к подключаемому файлу. Теперь, когда обработчик PHP дойдет до этого кода, он на месте include (‘/code/config.php’); вставит содержимое файла config.php. Таким образом, можно подключать к основному файлу другие, например, подключать блоки отвечающие за шапку сайта, sidebar, footer и т.д.

На этом данная статья подошла к концу. Если вы не хотите пропустить последних обновлений сайта, рекомендую подписаться на новостную рассылку любым удобным для вас способом в пункте «Подписка» либо воспользоваться формой ниже.

На этом все. Удачи вам и успехов в освоении PHP.

Учебно-методическое пособие «Основы работы с базами данных»
методическая разработка на тему

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

Скачать:

Вложение Размер
bd_posobie.docx 648.81 КБ

Предварительный просмотр:

Государственное бюджетное учреждение дополнительного профессионального педагогического образования центр повышения квалификации специалистов
«Информационно-методический центр» Пушкинского района Санкт-Петербурга

А.С. Горбенко, Е. А. Юркова

Основы работы с базами данных

Конспект практических занятий по курсу

«Компьютерные технологии в прикладных областях»

§ 1. СПИСКИ EXCEL КАК БД

База данных (БД) – структурированная информация об однородных объектах, которая хранится в виде карточек (форм) или строк таблицы.

Программа, способная обеспечить эффективное использование баз данных, называются системами управления базами данных – СУБД.

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

  • простейшие БД могут вестись даже в текстовом редакторе. Здесь возможна только сортировка и поиск данных;
  • для решения сложных задач управления БД предназначены профессиональные СУБД – Microsoft Access, Paradox, FoxPro и др;
  • Microsoft Excel используется как средство управления БД малого и среднего размера, не содержащих графических элементов.

При работе в Excel с БД для обозначения таблицы БД используется термин Список . При создании списка необходимо выполнять следующие условия:

  1. каждый столбец должен содержать информацию одного типа (например, текст);
  2. одна или две верхние строки списка должны содержать заголовки столбцов;
  3. в списке не должно быть пустых строк и столбцов;
  4. список должен быть отделен от других данных рабочего листа Excel пустыми строками и столбцами.

Сортировка записей в списке:

  • активизируйте ячейку внутри списка в нужном столбце;
  • выполните сортировку: Вкладка Данные/ Группа Сортировка и фильтр ;
  • наличие/отсутствие строки заголовка в списке задается в диалоговом окне Сортировка . Здесь же можно задать более сложное условие сортировки.

Выбор нужных записей из списка:

  • активизируйте ячейку внутри списка;
  • включите фильтрацию: Вкладка Данные/ Группа Сортировка и фильтр/ Кнопка Фильтр ;
  • если фильтрация включена, достаточно щелкнуть по стрелке в заголовке столбца, чтобы выбрать фильтр для этого столбца.

Практическое задание 1-1

  1. Лист Нумизмат : создайте список на основании следующей таблицы.
  2. Отсортируйте список по столбцу Название монеты .
  3. Добавьте столбец для вычисления: Масса, карат = Масса, г *5.
  4. Изучите возможности фильтра при фильтрации текста и чисел.
  5. Постройте линейчатую диаграмму (Название монеты; Масса, г)
  6. Сохраните документ под именем Списки в своей папке.

Практическое задание 1-2

  1. Откройте документ Списки .
  2. Лист Планеты : создайте список на основании следующей таблицы.
  3. Используя фильтр, найдите общую массу планет:
  • имеющих экваториальный диаметр менее 50 тыс. км;
  • имеющих период обращения по орбите более 10 земных лет.
  1. Сохраните результаты фильтрации рядом с исходной таблицей.

Период обращения по орбите, земных лет

Масса, 10 24 , кг

§ 2. РАСШИРЕННЫЙ ФИЛЬТР

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

В Microsoft Excel для более сложных условий отбора применяется расширенный фильтр . Расширенный фильтр способен сформировать новую таблицу из отфильтрованных записей.

Для создания расширенного фильтра выполните следующие действия .

  1. Сформируйте ТАБЛИЦУ КРИТЕРИЕВ:
  • сделайте копию строки заголовков списка;
  • заполните ниже строки с критериями – если несколько критериев расположены в одной строке, они считаются связанными между собой логической операцией И , в разных строках – логической операцией ИЛИ .
  1. Выделите ячейку внутри исходного списка.
  2. Выполните команду вкладка Данные / Группа Сортировка и фильтр / Кнопка Дополнительно . В появившемся окне укажите:
  • обработку: скопировать результат в другое место (иначе исходный список будет утерян!);
  • исходный диапазон (список для фильтрации);
  • диапазон условий (таблица критериев);
  • диапазон для размещения результатов фильтрации.

Практическое задание 2

  1. Откройте документ Списки . Создайте на листе Звери список на основании следующей таблицы.

Oracle (OCI7 и OC18)

Как показывает этот список, поддержка баз данных в PHP простирается от совместимости с базами данных, известных всем (например, Oracle), до тех, о которых многие даже не слышали. Мораль — если вы собираетесь использовать серьезную СУБД для хранения информации, распространяемой через Web, скорее всего, эта база данных поддерживается в PHP. Поддержка базы данных в PHP представлена набором стандартных функций для соединения с базой, обработки запросов и разрыва связи.

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

MySQL

MySQL ( http://www.mysql.com ) — надежная СУБД на базе SQL, разработанная и сопровождаемая фирмой Т.с.Х DataKonsultAB (Стокгольм, Швеция). Начиная с 1995 года, MySQL стала одной из самых распространенных СУБД в мире, что отчасти обусловлено ее скоростью, надежностью и гибкой лицензионной политикой (см. ниже).

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

MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License). Полное описание текущей лицензионной политики MySQL приведено на сайте MySQL ( http://www.mysql.com ).

Установка

Одна из причин популярности MySQL среди пользователей PHP заключается в том, что поддержка этого сервера автоматически включается в поставку PHP. Таким образом, вам остается лишь проследить за правильной установкой пакета MySQL СУБД MySQL совместима практически с любой серьезной операционной системой, включая FreeBSD, Solaris, UNIX, Linux и различные верии Windows. Хотя лицензионная политика MySQL отличается большей гибкостью в сравнении с другими серверами баз данных, я настоятельно рекомендую ознакомиться с лицензионной информацией, размещенной на сайте MySQL ( http://www.mysql.com ).

Последнюю версию MySQL можно принять с любого зеркального сайта. Полный список зеркальных сайтов приведен по адресу http://www.mysql.com/downloads/ mirrors.html. На момент написания книги последняя стабильная версия MySQL имела номер 3.22.32, а версия 3.32 находилась на стадии бета-тестирования. Конечно, всегда следует устанавливать последнюю стабильную версию, это в ваших интересах. Посетите ближайший «зеркальный» сайт и загрузите версию, соответствующую вашей операционной системе. В верхней части страницы расположены ссылки на новые версии для различных платформ. Обязательно прочитайте всю страницу, поскольку она завершается ссылками для некоторых специфических ОС.

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

Настройка MySQL

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

На первый взгляд, таблицы привилегий MySQL выглядят устрашающе, но если в них как следует разобраться, дальнейшее сопровождение становится очень простой задачей. Полное описание таблиц привилегий выходит за рамки этой книги. Впрочем, в Web существует немало ресурсов, предназначенных для помощи начинающим пользователям MySQL. За дополнительной информацией обращайтесь на сайт MySQL ( http://www.mysql.com ).

После успешной установки и настройки пакета MySQL можно начинать эксперименты с базами данных в среде Web! Именно этой теме и посвящен следующий раздел. Начнем с изучения поддержки MySQL в PHP.

Стандартные функции PHP для работы с MySQL

Итак, вы успешно создали и протестировали все необходимые разрешения; все готово для работы с сервером MySQL. В этом разделе я представлю стандартные функции PHP, при помощи которых вы сможете легко организовать взаимодействие сценариев PHP с сервером MySQL. Общая последовательность действий при взаимодействии с сервером MySQL выглядит так:

  1. Установить соединение с сервером MySQL. Если попытка завершается неудачей, вывести соответствующее сообщение и завершить процесс.
  2. Выбрать базу данных сервера MySQL. Если попытка выбора завершается неудачей, вывести соответствующее сообщение и завершить процесс. Допускается одновременное открытие нескольких баз данных для обработки запросов.
  3. Обработать запросы к выбранной базе (или базам).
  4. После завершения обработки запросов закрыть соединение с сервером баз данных.

В примерах этого раздела используются таблицы products, customers и orders (см. рис. 11.1). Если вы захотите самостоятельно проверить все примеры, создайте эти таблицы или скопируйте страницу с описанием структуры, чтобы вам не приходилось постоянно листать книгу.

Итак, начнем с самого начала — то есть с подключения к серверу MySQL.

Функция mysql_connect( ) устанавливает связь с сервером MySQL После успешного подключения к MySQL можно переходить к выбору баз данных, обслуживаемых этим сервером. Синтаксис функции mysql_connect( ):

int mysql_connect ([string хост [:порт] [:/путь//к/сокету] [, string имя пользователя] [, string пароль])

В параметре хост передается имя хостового компьютера, указанное в таблицах привилегий сервера MySQL. Конечно, оно же используется для перенаправления запросов на web-сервер, на котором работает MySQL, поскольку к серверу MySQL можно подключаться в удаленном режиме. Наряду с именем хоста могут указываться необязательные параметры — номер порта, а также путь к сокету (для локального хоста). Параметры имя_пользователя и пароль должны соответствовать имени пользователя и паролю, заданным в таблицах привилегий MySQL. Обратите внимание: все параметры являются необязательными, поскольку таблицы привилегий можно настроить таким образом, чтобы они допускали соединение без проверки. Если параметр хост не задан, mysql_connect( ) пытается установить связь с локальным хостом.

Пример открытия соединения с MySQL:

@mysql_connect(» local host», «web», «4tf9zzzf») or die(«Could not connect to MySQL server!»);

В данном примере localhost — имя компьютера, web— имя пользователя, а 4tf9zzzf — пароль. Знак @ перед вызовом функции mysql_connect( ) подавляет все сообщения об ошибках, выдаваемые при неудачной попытке подключения, — они заменяются сообщением, указанным при вызове die( ). Обратите внимание: значение, возвращаемое при вызове rnysql_connect( ), в данном примере не используется. Если в программе используется всего одно соединение с сервером MySQL, это вполне нормально. Но если программа устанавливает соединения с несколькими серверами MySQL на разных хостах, следует сохранить идентификатор соединения, возвращаемый при вызове mysql_connect( ), чтобы адресовать последующие команды нужному серверу MySQL. Пример:

Идентификаторы $link1 и $link2 передаются при последующих обращениях к базам данных с запросами. Вскоре вы узнаете, как именно адресовать запрос нужному серверу при помощи идентификатора соединения.

Функция mysql_pconnect( ) обеспечивает поддержку восстанавливаемых (persistent) соединений. В многопользовательских средах рекомендуется использовать mysql_pconnect( ) вместо mysql_connect( ) для экономии системных ресурсов. По типам параметров и возвращаемого значения функция mysql_pconnect( ) в точности совпадает c mysql_connect( ).

После успешного соединения с MySQL необходимо выбрать базу данных, находящуюся на сервере. Для этого используется функция mysql_select_db( ). Синтаксис функции mysql_select_db( ):

int mysql_select_db (string имя_базы_данных [, int идентификатор_соединения])

Параметр имя_базы_данных определяет выбираемую базу данных, идентификатор

которой возвращается функцией mysql_select_db( ). Обратите внимание: параметр

идентификатор_соединения необязателен лишь при одном открытом соединении с

сервером MySQL. При наличии нескольких открытых соединений этот параметр

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

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

После завершения работы с сервером MySQL соединение необходимо закрыть. Функция mysql_close( ) закрывает соединение, определяемое необязательным параметром. Если параметр не задан, функция mysql_close( ) закрывает последнее открытое соединение. Синтаксис функции mysql_close( ):

int mysql_close ([int идентификатор_соединения])

Пример использования mysql_close( ):

В этом примере указывать идентификатор соединения не нужно, поскольку на момент вызова mysql_close( ) существует лишь одно открытое соединение с сервером.

Соединения, открытые функцией mysql_pconnect( ), закрывать не обязательно.

Функция mysql_query( ) обеспечивает интерфейс для обращения с запросами к базам

данных. Синтаксис функции mysql_query( ):

int mysql_query (string запрос [, int идентификатор_соединения])

Параметр запрос содержит текст запроса на языке SQL. Запрос передается либо соединению, определяемому необязательным параметром идентификатор_соедине-ния, либо, при отсутствии параметра, последнему открытому соединению.

Неопытные программисты часто ошибочно думают, что функция mysql_query( ) возвращает результаты обработки запроса. Это не так — в зависимости от типа запроса вызов mysql_query( ) может приводить к разным последствиям. При успешном выполнении команды SQL SELECT возвращается идентификатор результата, который впоследствии передается функции mysql_result( ) для последующего форматирования и отображения результатов запроса. Если обработка запроса завершилась неудачей, функция возвращает FALSE. Функция mysql_result( ) описана в одном из следующих разделов. Количество записей, участвующих в запросе, определяется при помощи функции mysql_num_rows( ). Эта функция также описана далее.

Учитывая сказанное, я приведу примеры использования mysql_query( ) лишь после описания функций mysql_result( ) и mysql_affected_rows( ).

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

Во многих ситуациях требуется узнать количество записей, участвующих в запросе SQL с командами INSERT, UPDATE, REPLACE или DELETE. Задача решается функцией mysql_affected_rows( ). Синтаксис функции:

int mysql_affected_rows ([int идентификатор_соединения])

Обратите внимание: параметр идентификатор_соединения не является обязательным. Если он не указывается, mysql_affected_rqws( ) пытается использовать последнее открытое соединение. Пример:

// Выполнить запрос $result = mysql_query($query);

// Определить количество обновленных записей

print «Total row updated; «.mysql_affected_rows( );

При выполнении этого фрагмента будет выведен следующий результат:

Total row updated: 1

Функция mysql_affected_rows( ) не работает с запросами, основанными на команде SELECT. Для определения количества записей, возвращенных при вызове SELECT, используется функция mysql_num_rows( ), описанная в следующем разделе.

В одной специфической ситуации функция mysql_affected_rows( ) работает с ошибкой. При выполнении команды DELETE без секции WHEREmysql_affected_rows( ) всегда возвращает 0.

Функция mysql_num_rows( ) определяет количество записей, возвращаемых командой SELECT. Синтаксис функции mysql_num_rows( ):

int mysql_num_rows(int результат)

Пример использования mysql_num_rows( ):

Поскольку таблица содержит лишь один товар, название которого начинается с буквы р (pears), возвращается только одна запись. Результат:

Total rows selected: 1

Функция mysql_result() используется в сочетании с mysql_query( ) (при выполнении запроса с командой SELECT) для получения набора данных. Синтаксис функции mysql_resu1t():

int mysql_result (int идентификатор_результата, int запись [. mixed поле»]’)

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

  • смещение поля в таблице;
  • имя поля;
  • имя поля в формате имя_поля_имя_тдблицы.

В листинге 11.1 используется база данных, изображенная на рис. 11.1.

Листинг 11.1. Выборка и форматирование данных в базе данных MySQL

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

Листинг 11.2. Результат выполнения листинга 11.1

Функция mysql_result( ) удобна для работы с относительно небольшими наборами данных, однако существуют и другие функции, работающие намного эффективнее, — а именно, функции mysql_fetch_row( ) и mysql_fetch_array( ). Эти функции описаны в следующих разделах.

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

array mysql_fetch_row (int результат)

Использование функции list( ) в сочетании с mysql_fetch_row( ) позволяет сэкономить несколько команд, необходимых при использовании mysql_result( ). В листинге 11.3 приведен код листинга 11.1, переписанный с использованием list( ) и mysql_fetch_row( ).

Листинг 11.3. Выборка данных функцией mysql_fetch_row( )

Листинг 11.3 выдает тот же результат, что и листинг 11.1, но использует при этом меньшее количество команд.

my sq l_f etch_array ( )

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

array mysql_fetch_array (int идентификатор результата [, тип_индексации])

В параметре идентификатор_результата передается значение, возвращенное функцией mysql_query( ). Необязательный параметр тип_индексации принимает одно из следующих значений:

  • MYSQL_ASSOC — функция mysql_fetch_array( ) возвращает ассоциативный массив. Если параметр не указан, это значение используется по умолчанию;
  • MYSQL_NUM — функция mysql_fetch_array( ) возвращает массив с числовой индексацией;
  • MYSQL_BOTH — к полям возвращаемой записи можно обращаться как по числовым, так и по ассоциативным индексам.

Листинг 11.4 содержит очередной вариант кода листингов 11.1 и 11.3. На этот раз используется функция mysql_fetch_array( ), возвращающая ассоциативный массив полей.

Листинг 11.4. Выборка данных функцией mysql_fetch_array( )

Листинг 11.4 выдает тот же результат, что и листинги 11.1 и 11.3.

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

Пример простейшей поисковой системы на PHP

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

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

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

Листинг 11.5. Простейшая поисковая система (searchengine.php)

Customer Information:

print «Identification #: $id
«;

Order History:

// Построить и выполнить запрос к таблице ‘orders’

$query = «SELECT order_id, prod_id, quantity

FROM orders WHERE cust_

ORDER BY quantity DESC»;

print »

«;

// Отформатировать и вывести найденные записи.

print »

«;

print »

«;

print «

«;

print «

  1. Используя расширенный фильтр и копирование данных через буфер обмена, создайте в текстовом редакторе Word документ Уникальные звери нашей планеты в соответствии с образцом.

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

Вот только некоторые, самые уникальные, из зверей.

Из отряда приматов обращают на себя внимание обезьяны весом свыше 50 килограмм. Их еще называют человекообразными.

Табл. 1. Человекообразные обезьяны (в порядке возрастания веса).

Интересны хищники , среди которых есть малютки, весящие не больше килограмма, и гиганты весом свыше центнера.

Табл. 2. Диапазон веса хищников (в порядке убывания веса).

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

Табл. 3. Ластоногие (по алфавиту).

§ 3. ОСНОВНЫЕ ПОНЯТИЯ И МОДЕЛИ БАЗ ДАННЫХ

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

ОСНОВНЫЕ МОДЕЛИ БД

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

  • узел низшего уровня связан только с одним узлом высшего уровня;
  • иерархическое дерево имеет только одну вершину (корень);
  • каждый узел имеет свое уникальное имя.

Примеры : файловая структура диска, сложное меню, БД Столицы :

2). Сетевая БД – имеет те же элементы, что и иерархическая БД: узел, уровень, связь, но другой характер их отношений. В сетевой модели принята свободная связь между элементами разных уровней.

Пример : производство (выпуск изделий разными цехами):

3). Реляционная БД (реляционная модель была предложена в 1969 году математиком, научным сотрудником фирмы IBM Э.Коддом) – использует представление данных в виде таблицы (лат. relation – отношение). В простейшем случае реляционная БД представляет собой двумерную таблицу, а при создании сложных информационных моделей – совокупность взаимосвязанных таблиц.

Каждая ячейка таблицы – один элемент данных.

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

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

Запись – строка таблицы. Поле – столбец таблицы .

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

БД Поступление комплектующих

СУБД – системы управления базами данных. СУБД Microsoft Access 2007 позволяет хранить все объекты БД в одном файле с расширением accdb .

Создание БД начинается с создания таблицы. Таблица – основа БД: главное хранилище информации (набор однотипных записей).

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

Изменение формата данных можно сделать, используя вкладку Работа с таблицами / Режим Таблицы .

Практическое задание 3-1

Создайте БД Учебная , содержащую несколько таблиц .

Таблица Записная книжка . Введите в таблицу 9 записей.

Таблица Мероприятия . Введите в таблицу 8 записей.

Цена на человека

§ 4. СОЗДАНИЕ ТАБЛИЦЫ В РЕЖИМЕ «КОНСТРУКТОР»

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

текстовый – строка текста длиною до 255 символов;

числовой – числовые данные (например, 89 , 0,5 );

поле МЕМО – текст более 255 символов (до 65535);

дата / время – дата или время (например, 18.03.2008 , 12:55:00 );

денежный – денежный формат (например, 345,00р. );

логический – одно из значений ДА/НЕТ (ИСТИНА/ЛОЖЬ);

счетчик – поле заполняется автоматически при вводе;

поле объектов OLE – внешние данные: изображения, звуки и т.д.;

гиперссылка – ссылка на любые внешние объекты;

Основные свойства полей

для текстового поля – по умолчанию — 50 символов.

для числового поля размер – по умолчанию длинное целое

Целое от 0 до 255

Целое от -32 768 до 320767

Целое от — 2 147 483 648 до 2 147 483 647

Одинарное с плавающей точкой

Действительное (имеющее дробную часть)

Двойное с плавающей точкой

Действительное (имеющее дробную часть)

Значение по умолчанию – значение, автоматически задаваемое в поле для новой записи.

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

Создание таблицы в режиме Конструктор

выберите режим Конструктор ;

для каждого поля:

  • задайте имя поля;
  • определите тип поля;
  • определите основные свойства поля.

Практическое задание 4-1

Создайте БД Мосты .

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

Практическое задание 4-2

Создайте БД Страны .

Для создания таблицы используйте Конструктор .

§ 5. ФИЛЬТРАЦИЯ – СРЕДСТВО АНАЛИЗА ДАННЫХ НА УРОВНЕ ТАБЛИЦЫ

Фильтрация – отбор записей, удовлетворяющих заданному критерию. Если при работе с таблицей нужно ОПЕРАТИВНО сделать выборку записей в соответствии с определенными критериями, то следует использовать ФИЛЬТР.

Для работы с фильтрами используем группу Сортировка и фильтр на вкладке Главная . Основные команды фильтрации: Выделение , Дополнительно – Изменить фильтр и Дополнительно – Расширенный фильтр .

На бланке Фильтр добавьте поля, для которых будут заданы условия поиска и сами условия. Если условия связаны операцией И (And), располагайте их в одной строке бланка. Если условия связаны операцией ИЛИ (Or), располагайте их на разных строках бланка.

При составлении условия поиска можно использовать:

логические операции: And (И), Not (Нет), Or (Или);

Примеры использование шаблонов в фильтрах

Любое количество любых символов

День, Добрый день Длинная тень

Один любой текстовый символ

Забор, Затор, Загар

Одна любая цифра

Для замещения символов из указанного набора

Алексеев, Алексей, Александров

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

[но не Иванова или Ивановы]

Примечание: Access автоматически изменяет некоторые значения, которые вы вводите в строку Условие отбора бланка фильтра:

– символ # по обе стороны от даты означает, что это не математическое выражение;

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

Практическое задание 5

На основании БД Мосты , создайте ТЕКСТОВЫЙ документ Отчет о результатах фильтрации , который содержит:

  • название фильтра,
  • результат фильтрации.

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

Примените следующие фильтры:

  1. Арочные мосты, длиной более 500 м.
  2. Мосты США, постройки после 1970 года.
  3. Мосты постройки до 1918 года или после 1960 года (отсортируйте по году постройки).
  4. Мосты длиной от 300 до 500 м.
  5. Арочные мосты с названием начинающимся на Д или заканчивающимся на й (отсортируйте по названию).
  6. Мосты США длиной более 1200 м.
  7. Мосты, в названии которых имеется буква ф .

§ 6. ОТБОР ЗАПИСЕЙ С ПОМОЩЬЮ ЗАПРОСА НА ВЫБОРКУ

Запросы – специальные объекты, предназначенные для отбора, изменения, добавления и удаления данных. Запрос сохраняется как обычная таблица. Источник данных для запроса – исходная таблица БД или таблицы других запросов.

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

Запросы можно создать с помощью Мастера запросов или Конструктора.

Простой запрос на выборку

В результате работы запроса формируется результирующая таблица, содержащая записи и поля, соответствующие условию отбора.

Для создания запроса:

  • откройте вкладку Создание группу Другие ;
  • выберите команду Конструктор запросов ;
  • добавьте таблицы (и/или запрос), по которым будет создаваться запрос. Таблицы добавляются в верхнюю часть окна Запрос на выборку ;

в нижней части окна заполните бланк запроса:

  • перетащите названия необходимых полей в строку Поле . Строка Имя таблицы заполняется автоматически;
  • при необходимости выберите вид сортировки по полям;
  • если не нужно, чтобы поле было видно в запросе, уберите флажки из строки Вывод на экран ,
  • укажите Условие отбора :
  • условия связанные операцией И (And) располагают в одной строке бланка; условия связанные операцией ИЛИ (Or) – на разных;
  • при формировании условий можно использовать шаблоны * ? #.

Для выполнения запроса – щелкните по кнопке Выполнить . Чтобы вернуться к созданию запроса – щелкните по кнопке Конструктор на вкладке Главная .

Примеры условных выражений для формирования условий отбора

Вывод записей, которые

Саратов или Like «Саратов»

имеют значение Саратов

не имеют значение Саратов

начинаются с буквы А

содержат букву м

начинаются с букв А-Л

начинаются с букв М-Я

имеют значение даты позднее 01.01.94

имеют значение дат месяца февраль

имеют значение текущей даты

имеют числовое значение =100

имеют числовое значение не равное 25

between 1 and 2

имеют числовое значение свыше 1 и менее 2

имеют числовое значение меньше или = 20

числа от 2 до 3

числа меньше 2 или большие 3

содержат в поле пустое значение

имеют не пустое значение в поле

состоят из трех символов

состоят из трех цифр

Запрос на выборку с параметром

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

Практическое задание 6-1

Создайте следующие запросы для БД Учебная .

  1. Запрос Телефон (поля – фамилия, имя, Домашний телефон).
  2. Запрос Спорт (все поля; условие: записи, для которых увлечение – спорт).
  3. Запрос с параметром По имени (все поля; параметр: имя).

Практическое задание 6-2

Создайте следующие запросы для БД Страны .

  1. Запрос Население (поля – Название, Население, Площадь).
  2. Запрос Английский язык (все поля, условие: страны с английским языком и населением более 10 000 тыс. человек).
  3. Запрос с параметром Религия (все поля; параметр: Религия).
  4. Запрос Площадь (поля – Название, Площадь; условие: страны с английским языком и площадью менее 100 000 кв.км).

§ 7. САМОСТОЯТЕЛЬНАЯ РАБОТА

  1. Скопируйте к себе в папку базу данных

Р:\Базы данных\ Самостоятельная работа №1

  1. Создайте для таблицы Заказы следующие запросы:
  1. Запрос Получатель :
  • поля – Дата размещения, Дата отгрузки, Получатель, Город получателя, Адрес получателя;
  • условие: Дата размещения –1 квартал 2006 года;
  • параметр – Город получателя.

Примечание: 1 квартал 2006 года – это январь, февраль, март.

  1. Запрос Важные :
  • поля – Код, Дата размещения, Получатель;
  • условие: только важные.

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

если поле имеет вид ☑ – Да , иначе (□) – Нет .

  1. Создайте для таблицы Товары следующие запросы:
  1. Запрос Категория :
  • поля – Наименование, Стандартная стоимость, Цена по прейскуранту, Желаемый запас, Категория;
  • параметр – Категория;
  • условие: только те, для которых поставки прекращены;
  • сортировка: Желаемый запас – по возрастанию.
  1. Запрос Стоимость :
  • поля – Наименование, Цена по прейскуранту, Категория;
  • параметр: те товары, для которых Цена по прейскуранту меньше …. ;
  • сортировка: Наименование – по убыванию.

§ 8. КОНТРОЛЬ ВВОДА ДАННЫХ

1. Мастер подстановок.

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

  • откройте таблицу в Режиме Конструктор ;
  • выберите Тип данных – Мастер подстановок .

Корректировка данных, введенных с использованием Мастера подстановок , возможна на вкладке Подстановка свойств поля: строки Источник строк и Ограничиться списком .

2. Значение по умолчанию.

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

3. Условие на значение.

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

Например, для поля Месяц: >0 And

Установить ограничения на формат вводимых данных можно с использованием Маски ввода , которая обеспечивает соответствие данных определенному формату (например: 678-76-765) и автоматически вводит постоянные символы, такие как дефис, косая черта и т.д.

Чтобы задать для поля маску ввода:

в окне Конструктора щелчком мыши выделите поле, для которого необходимо задать маску ввода;

непосредственно введите Маску ввода на вкладке Общие или щелкните по кнопке Построения (…) и постройте маску с помощью Мастера масок ввода .

В окне Настройка масок ввода можно выбрать одну из существующих масок или создать новую через кнопку Список .

Примечание: Мастер масок ввода предназначен только для полей типа Текстовый и Дата/время.


Маска ввода может иметь до трех частей, отделяемых друг от друга точкой с запятой (;):

0 или 1 (0 – постоянные символы-разделители сохраняются вместе с маской, 1 или отсутствие значения – не сохраняются);

символ-заполнитель (стандартный символ-заполнитель – символ подчеркивание (_); при желании его можно заменить на любой другой).

Спецсимволы масок ввода

Ввод НЕ обязателен

Цифра (от 0 до 9)

0 (+ и – не допускаются)

Цифра или пробел

9 ( + и – не допускаются)

Буква или цифра

Любой символ или пробел

Перевод всех следующих символов в нижний регистр

Перевод всех следующих символов в верхний регистр

Примеры масок ввода

Практическое задание 8

Создайте БД Квартиры , состоящую из 30 записей.

  • улица – текст (маска: ул. );
  • дом – текст (маска: №);
  • количество комнат – число целое (1-4);
  • общая площадь – число дробное (20-200) м 2 ;
  • площадь кухни – число дробное (5-20) м 2 ;
  • этаж – число целое (1-10);
  • телефон – логическое (да/нет);
  • балкон – текст (Б,Л,НЕТ; других вариантов быть не может);
  • год постройки – число целое (1900-2006);
  • цена – денежный (20 000 – 100 000) евро.

§ 9. ИТОГОВЫЕ ЗАПРОСЫ. ГРУППОВЫЕ ОПЕРАЦИИ В ЗАПРОСАХ

Запросы позволяют не только выбирать записи из таблиц, но и вычислять различные статистические параметры.

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

  • Sum – вычисляет сумму значений, содержащихся в заданном поле запроса;
  • Avg – вычисляет среднее арифметическое набора значений, содержащихся в поле запроса;
  • Min – вычисляет минимальное из значений, содержащихся в заданном поле запроса;
  • Max – вычисляет максимальное из значений, содержащихся в заданном поле запроса;
  • Count – вычисляет количество записей (не учитываются при подсчете записи, имеющие значения Null).

В запрос включают два поля:

  • по которому производится группировка;
  • для которого выполняется операция.

Дополнительно можно включить еще поля для определения условий запроса (сняв с них флажок отображения поля в запросе).

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

Создание итогового запроса с помощью Конструктора

  • введите в бланк запроса необходимые поля;
  • щелкните по кнопке Итоги в группе Показать или скрыть на вкладке Работа с запросами/Конструктор.
    В бланке запроса появляется строка Групповая операция ;
  • выберите вид групповой операции для нужного поля;
  • измените имя полученного поля: в режиме Конструктор , в контекстном меню выполните команду Свойства . В окне Свойства поля введите новое имя в строке Подпись .

Практическое задание 9-1

Создайте следующие запросы для БД Страны :

  1. Население+религия – количество населения, исповедующего одну религию (Sum).
  2. Страны+религия – количество стран, исповедующих одну религию (Count).
  3. Площадь+язык – общая площадь, занимаемая народами, говорящими на одном языке (Sum).

Практическое задание 9-2

Создайте следующие запросы для БД Квартиры :

  1. Кухни – средняя площадь кухни для квартир с различным числом комнат.
  2. Средняя цена – средняя цена квартир с различным числом комнат.
  3. Минимальная цена – минимальная цена квартир с различным числом комнат.
  4. Количество – количество квартир с различным числом комнат.

Практическое задание 9-3

Создайте следующие запросы для БД Мосты :

  1. Средняя длина – средняя длина мостов различных типов (тип моста – параметр).
  2. Количество мостов – количество мостов различных типов (тип моста – параметр).

§ 10. ЗАПРОСЫ С ВЫЧИСЛЕНИЯМИ

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

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

Создание вычисляемого поля:

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

Итого : [Заказано]![Цена]* [Заказано]![Количество]

1. При работе с Построителем выражений автоматически появляется текст «Выражение». Этот текст нужно удалить!

2. Комбинация клавиш [ Shift ]+[ F2 ] позволят увидеть вычисляемое поле целиком в отдельном окне.

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

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

Средняя область служит для отображения элементов, входящих в выбранный объект из левой области.

Правая область служит для выбора самых примитивных объектов.

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

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

Дополнительно выполнить во всех заданиях:

В вычисляемых полях установите в свойствах поля (контекстное меню) фиксированный формат данных с 2-мя десятичными знаками.

Практическое задание 10-1

Для БД Мосты создайте запрос Ярды (поля: название, длина; добавьте поле Длина пролета в ярдах (1 ярд = 0,9144 м)).

Практическое задание 10-2

Для БД Страны создайте запрос Плотность (все поля; добавьте поле Плотность населения на квадратный километр ).

Практическое задание 10-3

Для БД Квартиры создайте запросы:

  1. Стоимость в рублях (все поля, добавьте поле Стоимость квартиры в рублях (1 евро = 34,87 руб.));
  2. Коэффициенты (поля: улица, дом; добавьте поля К1, К2 ).

Коэффициент К 2 определяется с использованием математической функции округления Round («number»; «precision»),

где «number» – выражение, которое округляется;

«precision» – точность (количество знаков после запятой).

§ 11. Самостоятельная работа

Практическое задание 11

Создайте базу данных «Туристическое агентство».

Страна (одна из четырех).

Стоимость 1 дня.

№1 Количество туров по странам, которые есть в наличии.

№2 Цена туров (поля: страна, отель, количество дней, цена). Цена определяется как стоимость перелета + стоимость проживания (зависит от числа дней) + 15% от полученной суммы перечисление агентству. Сортировка по странам.

§ 12. ФОРМЫ

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

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

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

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

На вкладке Создание в группе Формы выберите нужную команду- кнопку :

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

Режимы создания формы

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

Режим конструктора. В этом режиме форма не выполняется. Однако этот режим позволяет более подробно просмотреть структуру формы.

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

Практическое задание 12-1

  • создайте форму Ввод данных и измените ее дизайн;
  • используя форму, добавьте в таблицу записи еще о двух странах:

Практическое задание 12-2

Используя Мастер форм, создайте форму для БД Квартиры в соответствии с образцом.

Практическое задание 12-3

Для БД Туристическое агентство:

  • создайте форму Новый тур и измените ее дизайн;
  • разместите на форме рисунки (Р:\Базы данных\Туристическое агенство);
  • используя форму, добавьте в таблицу записей еще о пяти турах.

§ 13. САМОСТОЯТЕЛЬНАЯ РАБОТА. ЧАСТЬ 1

1. Создайте БД Винчестеры со следующими полями:

Тип и свойства полей БД

текстовый (по умолчанию Seagate)

число целое (по умолчанию 12)

текстовый (РИК, Авантек, Африка – мастер подстановок)

2. Создайте форму для ввода информации:

3. Заполните таблицу данными:

4. Создайте запрос с параметром о винчестерах заданного объема (в запросе отобразите все поля). Название запроса – Винчестеры заданного объема .

5. Создайте итоговый запрос о количестве имеющихся винчестеров различных моделей. Название запроса – Количество винчестеров .

6. Создайте запрос с вычисляемым полем К (в запросе отобразите поля: объем, производитель и модель и только винчестеры, имеющие гарантию 12 месяцев):

К = Объем* (Кэш-4)/ Цена

Установите для коэффициента К фиксированный формат с 2-мя десятичными знаками. Название запроса – Параметрический коэффициент .

§ 14. САМОСТОЯТЕЛЬНАЯ РАБОТА. ЧАСТЬ 2

1. Создайте БД Сервизы со следующими полями:

Тип и свойства полей БД

(см. данные для заполнения таблицы)

по умолчанию: стекло

2. Создайте форму (в столбец) для ввода данных.

Рисунок можно взять из файла Сервиз.jpg

3. Заполните таблицу данными:

4. Создайте запрос с параметром о сервизах заданной комплектации (в запросе отобразите все поля). Название запроса – Сервизы заданной комплектации .

5. Создайте итоговый запрос о средней стоимости сервизов различного типа. Название запроса – Средняя стоимость .

6. Создайте запрос с параметром о сервизах, имеющихся в наличии (в запросе отобразите поля: Название, Тип и Стоимость ). Проведите сортировку по полю Стоимость . Параметр – материал. Название запроса – Сервизы в наличии .

7. Создайте запрос с вычисляемым полем К (в запросе отобразите поля: Тип , Производитель и Материал и только сервизы, имеющиеся в наличии):

К = Стоимость / Комплектация

Установите для коэффициента К фиксированный формат с 3-мя десятичными знаками. Название запроса – Параметрический коэффициент .

§ 15. Отчеты

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

Для работы с отчетом имеются режимы: Представление отчета , Предварительный просмотр , Режим макета и Конструктор .

Основные разделы отчета

Заголовок отчета – элементы, размещенные в этом разделе, видны только в начале отчета.

Верхний колонтитул – элементы, размещенные в этом разделе, видны в начале каждой страницы.

Область данных – размещены данные отчета.

Нижний колонтитул – элементы, размещенные в этом разделе, видны в конце каждой страницы.

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

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

  • Откройте таблицу (или запрос), на основе которой нужно создать отчет.
  • На вкладке Создание в группе Отчеты выберите кнопку Отчет . Созданный отчет отобразится в Режиме макета .

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

  • На вкладке Создание в группе Отчеты выберите Мастер отчетов .
  • Следуйте указаниям на страницах Мастера отчетов . На последней странице нажмите кнопку Готово .

Доработка отчета в Режиме макета

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

При работе с отчетом в режиме макета доступны кнопки вкладок Работа с макетами отчетов \Формат, Упорядочить и Параметры страницы .

Доработка отчета в режиме Конструктора

Доработать отчет можно также в режиме Конструктора . Новые элементы управления и поля добавляются в отчет путем их размещения их в сетку Конструктора .

При работе с отчетом в режиме Конструктора доступны кнопки вкладок Инструменты конструктора отчетов \Конструктор, Упорядочить и Параметры страницы .

Практическое задание 15-1

Создайте отчеты для БД Винчестеры на основании таблицы данных. Измените стандартный дизайн.

  1. Отчет Винчестеры ; все сведения о винчестерах.
  2. Отчет Винчестеры-мастер : мастер отчетов; поля – объем, производитель, цена.

Практическое задание 15-2

Создайте отчеты для БД Винчестеры на основании запросов. Измените стандартный дизайн.

  1. Отчет Винчестеры заданного объема с определением суммарного количества винчестеров (Итоги). Используйте одноименный запрос с параметром.
  2. Отчет Параметрический коэффициент . Используйте одноименный запрос.

Практическое задание 15-3

Создайте отчеты для БД Сервизы на основании таблицы данных. Измените стандартный дизайн.

  1. Отчет Сервизы ; все сведения о сервизах.
  2. Отчет Сервизы-мастер : мастер отчетов; поля – название, тип, материал, стоимость.

Практическое задание 15-4

Создайте отчеты для БД Сервизы на основании запросов. Измените стандартный дизайн.

  1. Отчет Сервизы заданной комплектации с определением средней цены сервиза (Итоги). Используйте одноименный запрос с параметром.
  2. Отчет Сервизы в наличии . Используйте одноименный запрос с параметром.
  3. Отчет Параметрический коэффициент . Используйте одноименный запрос.

§ 16. СВЯЗЫВАНИЕ ТАБЛИЦ

  • в каждой строке таблицы БД хранится информация только об одном объекте, причем в других строках сведений об этом объекте быть не должно;
  • количество полей в каждой строке одинаковое;
  • в каждом столбце хранится однотипная информация.

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

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

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

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

Установка ключевого поля (первичного)

в режиме Конструктор установите курсор на поле будущего первичного ключа;

щелкните по кнопке Ключевое поле на Панели инструментов Конструктор таблиц или воспользуйтесь контекстным меню.

Установка связи между таблицами

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

  • задайте первичный ключ в главной таблице;
  • откройте подчиненную таблицу в режиме Конструктор ;
  • выберите в подчиненной таблице для вторичного ключа тип – Мастер подстановок :
  • выберите вариант Объект «столбец подстановки» будет использовать значение из таблицы или запроса ;
  • выберите таблицу, содержащую подставляемые значения;
  • выберите в столбец подстановки нужные поля;
  • при необходимости можно задать порядок сортировки списка.
  • сохраните и закройте подчиненную таблицу;
  • откройте окно Схема данных , используя одноименную кнопку на ленте Работа с базами данных ;
  • двойным щелчком по линии связи откройте окно диалога, в котором установите свойства связи – включите флажки:
  • обеспечение целостности данных (для предотвращения удаления тех записей в главной таблице, которые связаны с записями в связанной таблице);
  • каскадное обновление связанных полей (изменения в главной таблице влекут за собой автоматическое изменения во всех связанных таблицах);
  • каскадное удаление связанных полей (любое удаление записи в главной таблице приведет к автоматическому удалению связанных записей в подчиненной таблице).

Практическое задание 13

Создайте БД Библиотека , состоящую из двух связанных таблиц:

  1. КодАвтора (ключевое поле) – счетчик.
  2. Фамилия – текстовый.
  3. Имя – текстовый.
  4. Отчество – текстовый.
  5. ГодРождения – числовой, ЦЕЛОЕ, в интервале 1700-2000.
  6. Фото – поле объекта Вложение .
  1. КодАвтора (внешний ключ) – применить Мастер подстановок .
  2. Название – текстовый.
  3. ТипОбложки (мягкая, твердая, подарочная – Мастер подстановок ).
  4. Аннотация – поле Мемо .
  5. Цена – денежный.
  6. ГодИздания – числовой, ЦЕЛОЕ, в интервале 1700-2007.

Заполните таблицы: 5 любых авторов и не менее трех книг для каждого автора. Фотографии можно взять в папке Портреты .

Примечание: Для размещения фотографии в поле типа Вложение:

  • установите курсор в ячейку и вызовите контекстное меню и выберите команду Управление вложениями .
  • найдите нужный объект, используя кнопку Добавить .

Фотография будет видна только в объектах Форма и Отчет .

§ 17. СОЗДАНИЕ ФОРМ, ЗАПРОСОВ И ОТЧЕТОВ НА БАЗЕ НЕСКОЛЬКИХ ТАБЛИЦ

  • используйте режим Конструктор ;
  • добавьте все необходимые таблицы (не нужно добавлять таблицы, поля которых не используются в данном запросе!);
  • выберите поля из различных таблиц.
  • используйте режим Мастер ;
  • в окне Создание форм ПОСЛЕДОВАТЕЛЬНО выберите таблицы или запросы и необходимые поля;
  • если поля выбираются из разных таблиц, то возникают подчиненные или связанные формы.
  • используйте режим Мастер ;
  • в окне Создание отчетов ПОСЛЕДОВАТЕЛЬНО выберите таблицы или запросы и необходимые поля.

Практическое задание 17-1

Создайте ФОРМЫ для БД Библиотека.

  1. Каталог авторов (все сведения из таблицы Авторы ).
  2. Каталог книг (все сведения из таблицы Книги ).
  3. Библиотека (все сведения об авторах и их книгах).
    ! Выберите вариант – подчиненная форма.

Практическое задание 17-2

Создайте ОТЧЕТЫ для БД Библиотека .

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

§ 18. САМОСТОЯТЕЛЬНАЯ РАБОТА. БД АВТОПРЕДПРИЯТИЕ

ГЛАВА 11. PHP и базы данных

Средства эффективного хранения и выборки больших объемов информации внесли огромный вклад в успешное развитие Интернета. Обычно для хранения информации используются базы данных. Работа таких известных сайтов, как Yahoo, Amazon и Ebay, в значительной степени зависит от надежности баз данных, хранящих громадные объемы информации. Конечно, поддержка баз данных ориентирована не только на интересы гигантских корпораций — в распоряжении web-программистов имеется несколько мощных реализаций баз данных, распространяемых по относительно низкой цене (а то и бесплатно).

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

Глава начинается с подробного описания выборки и обновления данных в MySQL — вероятно, самой популярной СУБД, используемой в PHP ( http://www.mysql.com ). На примере MySQL будет показано, как в PHP происходят загрузка и обновление данных в базе; мы рассмотрим базовые средства поиска и сортировки, используемые во многих web-приложениях. Затем мы перейдем к реализованной в PHP поддержке ODBC (Open Data Base Connectivity) — обобщенного интерфейса, который может использоваться для одновременного соединения с разными СУБД. Поддержка ODBC в PHP будет продемонстрирована на примере соединения и выборки данных из базы данных Microsoft Access. Глава завершается проектом, в котором PHP и СУБД MySQL используются для создания иерархического каталога с информацией об избранных сайтах. При включении в каталог новых сайтов пользователь относит их к одной из стандартных категорий, определяемых администратором сайта.

Прежде чем переходить к обсуждению MySQL, я хочу сказать несколько слов об SQL — самом распространенном языке для работы с базами данных. Язык SQL заложен в основу практически всех существующих СУБД. Чтобы перейти к рассмотрению примеров работы с базами данных, необходимо хотя бы в общих чертах представлять, как работает SQL.

Что такое SQL?

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

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

Обратите внимание: в определении SQL было сказано, что этот язык предназначен для работы с реляционными базами данных. В реляционных СУБД данные организуются в виде набора взаимосвязанных таблиц. Связи между таблицами реализуются в виде ссылок на данные других таблиц. Таблицу можно представить себе как двухмерный массив, в котором расположение каждого элемента характеризуется определенными значениями строки и столбца. Пример реляционной базы данных изображен на рис. 11.1.

Рис. 11.1. Пример реляционной базы данных

Как видно из рис. 11.1, каждая таблица состоит из строк (записей) и столбцов (полей). Каждому полю присваивается уникальное (в рамках данной таблицы) имя. Обратите внимание на связь между таблицами customer и orders, обозначенную стрелкой. В информацию о заказе включается короткий идентификатор клиента, что позволяет избежать избыточного хранения имени и прочих реквизитов клиента. В изображенной базе данных существует еще одна связь — между таблицами orders и products. Эта связь устанавливается по полю prod_id, в котором хранится идентификатор товара, заказанного данным клиентом (определяемого полем custjd). Наличие этих связей позволяет легко ссылаться на полные данные клиента и товара по простым идентификаторам. Правильно организованная база данных превращается в мощное средство организации и эффективного хранения данных с минимальной избыточностью. Запомните эту базу данных, я буду часто ссылаться на нее в дальнейших примерах.

Итак, как же выполняются операции с реляционными базами данных? Для этого в SQL существует специальный набор общих команд — таких, как SELECT, INSERT, UPDATE и DELETE. Например, если вам потребуется получить адрес электронной почты клиента с идентификатором 2001cu (см. рис. 11.1), достаточно выполнить следующую команду SQL:

SELECT cust_email FROM customers WHERE custjd = ‘2001cu’

Все вполне логично, не правда ли? В обобщенном виде команда выглядит так:

SELECT имя_поля FROM имя_таблицы [ WHERE условие ]

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

SELECT cust_email FROM customers

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

INSERT into products VALUES (‘1009pr’, ‘Red Tomatoes’, ‘1.43’);

Если позднее эти данные потребуется удалить, воспользуйтесь следующей командой:

DELETE FROM products WHERE prod_ >

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

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

Раз вы читаете эту книгу, вероятно, вас интересует вопрос, как же организуется работа с базами данных в среде Web? Как правило, сначала при помощи какого-

либо интерфейсного языка (PHP, Java или Perl) создается соединение с базой данных, после чего программа обращается к базе с запросами, используя стандартный набор средств. Интерфейсный язык можно рассматривать как своего рода «клей», связывающий базу данных с Web. Я перехожу к своему любимому интерфейсному языку — PHP.

Ниже перечислены некоторые ресурсы Интернета, посвященные SQL. Они пригодятся как новичкам, так и опытным программистам.

Поддержка баз данных в PHP

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

PostgreSQL
Product ID Product Name Product Price 1000pr apples 1001pr oranges 1002pr bananas 1003pr pears
0rder ID Product ID Quantity
$order_id $prod_id $quantity

«;

Если ввести ключевое слово Mi 1 апо и выбрать в раскрывающемся списке категорию Customer Name (Имя клиента), программа выводит следующую информацию:

Order Id Product Id Quantity
100003 1000pr 12
100005 1002pr 11

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

Сортировка таблиц

При выводе данных из базы необходимо предусмотреть возможность их сортировки по различным критериям. В качестве примера рассмотрим результаты, выведенные нашей поисковой системой, — обратим особое внимание на следующие после заголовка Order History: (История заказов). Допустим, список получился очень длинным, и вы хотите отсортировать данные по идентификатору товара (или идентификатору заказа). Чтобы вы лучше поняли, о чем идет речь, рекомендую посетить один из моих любимых сайтов, http://download.cnet.com. Если в процессе просмотра программ конкретной категории щелкнуть на заголовке столбца (название, дата размещения, количество загрузок или размер файла), то список автоматически упорядочивается по содержимому указанного столбца. Далее показано, как реализовать подобную возможность.

В листинге 11.6 мы производим выборку данных из таблицы orders. По умолчанию данные сортируются по убыванию объема заказа (поле quantity). Однако щелчок на любом заголовке таблицы приводит к тому, что страница загружается заново с упорядочением таблицы по указанному столбцу.

Листинг 11.6. Сортировка таблиц (tablesorter.php)

// Создать заголовок таблицы

// Отформатировать и вывести каждую строку таблицы

while (list($order_id,$cust_id,$prod_id, $quantity)

print »

«;

print »

$order_id $cust_id $prod_id

$quantity

«;

print «

«;

print «

«;

Для базы данных company, изображенной на рис. 11.1, стандартные выходные данные листинга 11.6 выглядят следующим образом:

Order ID Customer ID Product ID Quantity
2000cu 1000pr 12
2000cu 1002pr 11
2000cu 1000pr 9
2000cu 1001pr 5
2000cu 1002pr 3

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

Order ID Customer ID Product ID Quantity
2000cu 1002pr 11
2000cu 1000pr 9
2000cu 1000pr 12
2000cu 1001pr 5
2000cu 1002pr 3

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

На этом наше знакомство с MySQL подходит к концу. Учтите, что материал этой главы отнюдь не исчерпывает всего, что необходимо знать о MySQL. Полный список команд MySQL в PHP приведен в документации ( http://www.php.net/manuat ).

Специализированные функции хорошо подходят для работы с одним конкретным типом СУБД. Но что делать, если вам приходится подключаться к MySQL, Microsoft SQL Server и IBM DB2, притом в одном приложении? Аналогичная проблема возникает при разработке приложений, которые не должны зависеть от СУБД; такие приложения работают «над» существующей инфраструктурой клиентской базы данных. ODBC (сокращение от «Open Database Connectivity», то есть «открытая архитектура баз данных») представляет собой интерфейс прикладных программ (API), позволяющий использовать общий набор абстрактных функций для работы с разными типами баз данных. Преимущества подобного подхода очевидны — вам не придется многократно переписывать один и тот же фрагмент кода только для того, чтобы выполнять одинаковые операции с разнотипными базами данных.

Работа с сервером баз данных через ODBC возможна лишь в том случае, если этот сервер является ODBC-совместимым. Другими словами, для него должны существовать драйверы ODBC. За дополнительной информацией о драйверах ODBC обращайтесь к документации СУБД. Возможно, вам придется дополнительно загрузить их из Интернета и установить на своем компьютере. Хотя стандарт ODBC, разработанный компанией Microsoft, стал открытым стандартом, он в основном используется для работы с СУБД на платформе Windows; впрочем, драйверы ODBC также существуют и на платформе Linux. Ниже приведены ссылки на драйверы для некоторых популярных СУБД.

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

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

Поддержка ODBC в PHP

Функции ODBC в PHP, обычно называемые общими функциями ODBC, не только обеспечивают типовую поддержку ODBC, но и позволяют работать с некоторыми СУБД, обладающими собственным API, через стандартный ODBC API. К числу последних относятся следующие СУБД:

Обратите внимание: при работе с перечисленными СУБД стандартный механизм ODBC на самом деле не используется. Просто поддерживаемые в PHP общие функции ODBC применяются для взаимодействия с базами данных. Это удобно, поскольку при переходе на другую ODBC-совместимую СУБД (или СУБД из приведенного выше списка) все ваши сценарии будут нормально работать.

Поддержка ODBC встроена в комплект поставки PHP, поэтому вам за редкими исключе-ниями практически не придется заниматься специальной настройкой.

В настоящее время существует около 40 общих функций ODBC. Впрочем, для выборки информации из ODBC-совместимой базы данных вполне достаточно нескольких функций, описанных ниже. Полный список общих функций ODBC в PHP приведен в документации (http://www.php.net/manual).

Перед тем как обращаться к ODBC-совместимой базе данных с запросами, необходимо сначала установить с ней связь. Соединение создается функцией ocbc_connect( ). Синтаксис функции odbc_connect( ):

int odbc_connect (string источник_данных, string имя_пользователя, string пароль [, int тип_курсора])

Параметр источник_данных определяет ODBC-совместимую базу данных, с которой вы пытаетесь установить связь. В параметрах имя_пользователя и пароль, как нетрудно догадаться, передаются имя пользователя и пароль, необходимые для подключения к источнику данных. Необязательный параметр тип_курсора предназначе’н для устранения проблем, возникающих при работе с некоторыми драйверами ODBC. Он может принимать одно из четырех возможных значений:

  • SQL_CUR_USE_IF_NEEDED;
  • SQL_CURSOR_USE_ODBC;
  • SQL_CUR_USE_DRIVER;
  • SQL CUR DEFAULT.

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

Использовать odbc_connect( ) в программе несложно. Пример:

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

После завершения работы с ODBC-совместимой базой данных соединение необходимо закрыть, чтобы освободить все ресурсы, используемые открытым соединением. Соединение закрывается функцией odbc_close( ):

void odbc_close ([int идентификатор_соединения])

В параметре идентификатор_соединения передается идентификатор открытого соединения. Рассмотрим небольшой пример:

Перед непосредственной обработкой запрос необходимо «подготовить». Задача решается функцией odbc_prepare( ):

int odbc_prepare (int идентификатор_соединения , string запрос)

В параметре идентификатор_соединения передается идентификатор соединения, возвращаемый функцией odbc_connect( ). В параметре запрос передается текст запроса, который должен быть выполнен сервером. Если запрос не может быть выполнен, функция возвращает FALSE; в противном случае возвращается идентификатор результата, в дальнейшем используемый при вызове функции odbc_execute( ) (см. ниже).

Запрос, подготовленный функцией odbc_prepare( ), выполняется функцией odbc_execute( ). Синтаксис функции odbc_execute( ):

int odbc_execute (int идентификатор результата [, array параметры])

В параметре идентификатор_результата передается идентификатор результата, возвращаемый при успешном вызове odbc_prepare( ). Необязательный параметр передается лишь в том случае, если при вызове функции передаются дополнительные данные.

Рассмотрим следующий пример:

В приведенном примере продемонстрирована транзакция ODBC, при которой данные запроса не отображаются в браузере (как это обычно делается при использовании команды SELECT). Транзакция ODBC с использованием запроса QUERY описана ниже, в разделе «odbc_result_all( )».

Функция odbc_exec( ) объединяет odbc_prepare( ) и odbc_execute( ). Синтаксис функции odbc_exec( ):

int odbc_exec (int идентификатор_соединения , string запрос)

В параметре идентификатор_соединения передается идентификатор соединения, возвращаемый функцией odbc_connect( ). В параметре запрос передается текст запроса, который должен быть выполнен сервером. Если запрос не может быть выполнен, функция возвращает FALSE; в противном случае возвращается идентификатор результата, используемый при последующих вызовах функций:

В этом примере функция odbc_exec( ) пытается выполнить запрос, текст которого содержится в переменной $query. При успешном выполнении переменной $result присваивается идентификатор результата; в случае неудачи ей присваивается значение FALSE и выводится сообщение, передаваемое при вызове die( ).

Очень удобная функция odbc_result_all( ) форматирует и отображает все записи для идентификатора результата, полученного при вызове odbc_exec( ) или odbc_execute( ). Синтаксис функции odbc_result_all( ):

int odbc_result_all (int идентификатор_результата [, string формат_таблицы])

В параметре идентификатор_результата передается идентификатор результата, возвращаемый при успешном вызове odbc_exec( ) или odbc_execute( ). В необязательном параметре формат_таблицы передаются характеристики таблицы HTML. Рассмотрим следующий пример:

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

Рис. 11.2. Данные ODBC в браузере

Хороший стиль программирования требует освобождения всех ресурсов, связанных с завершенными операциями. При работе с запросами ODBC эта задача решается функцией odbc_free_result( ). Синтаксис функции odbc_free_result( ):

int odbc_free_result (int идентификатор_результата)

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

После того как функция odbc_result_all( ) завершила использование идентификатора результата, память возвращается в систему при помощи odbc_free_result( ).

На этом завершается наше знакомство с функциями ODBC в PHP, незаменимыми при создании простых интерфейсов на базе ODBC для доступа через Web. В следующем разделе многие из этих функций будут использованы для демонстрации того, как легко на базе PHP организуется взаимодействие с одной из самых популярных СУБД — Microsoft Access.

Microsoft Access и PHP

Популярность СУБД Microsoft Access ( http://www.microsoft.com/office/access ) отчасти объясняется ее удобным графическим интерфейсом. Помимо использования Access в качестве самостоятельной СУБД, вы можете использовать ее графический интерфейс для организации работы с другими базами данных — например, MySQL или Microsoft SQL Server.

Чтобы продемонстрировать поддержку ODBC в PHP, я опишу процесс подключения к базам данных Microsoft Access на PHP. Делается это на удивление просто, но благодаря популярности Microsoft Access это станет полезным дополнением в вашем творческом арсенале. Я опишу этот процесс шаг за шагом:

  1. Создайте базу данных Access. Предполагается, что вы уже умеете это делать, а если не умеете, но все равно хотите проследить за выполнением этого примера, — воспользуйтесь услугами программы-мастера. Я создал стандартную базу данных для хранения контактных данных при помощи мастера. Обязательно создайте в таблице несколько записей и запомните имя таблицы, оно нам вскоре понадобится!
  2. Сохраните базу данных на своем компьютере.
  3. На следующем шаге мы организуем доступ к базе Access средствами ODBC. Выполните команду Пуск > Настройка > Панельуправления (Start > Settings > Control Panel). Найдите на панели управления значок Источники данных ODBC (32) (ODBC Data Sources (32 bit)). При помощи этого значка запускается Администратор ODBC, предназначенный для настройки различных драйверов и источников данных в вашей системе. Запустите программу, дважды щелкнув на этом значке. Окно Администратора по умолчанию открывается на вкладке Пользовательский DSN (User DSN). На этой вкладке перечисляются источники данных-, которые относятся к конкретному пользователю и могут использоваться только на этом компьютере. В данном примере будет использоваться именно такой источник данных.
  4. Нажмите кнопку Добавить. (Add. ) в правой части окна. Открывается новое окно для выбора драйвера, предназначенного для работы с новым источником. Выберите строку Microsoft Access Driver (*.mdb) и нажмите кнопку Finish (Готово).
  5. На экране появляется новое окно Установка драйвера ODBC для Microsoft Access (ODBC Microsoft Access Setup). Найдите в форме текстовое поле Имя источника данных (Data Source Name) и введите в нем имя созданной вами базы данных Access. При желании можете ввести описание в текстовом поле, расположенном непосредственно под полем Имя источника данных.
  6. Нажмите кнопку Выбрать. (Select. ) — появляется окно в стиле Проводника Windows. В нем вам предлагается найти базу данных, доступ к которой будет осуществляться средствами ODBC.
  7. Найдите в дереве каталогов свою базу данных и дважды щелкните на ней. Вы снова возвращаетесь к окну Установка драйвера ODBC для Microsoft Access. Путь к выбранной базе данных отображается над кнопкой Выбрать. Нажмите кнопку ОК.
  8. Готово! Теперь вы можете работать с базой данных Access средствами ODBC.

Все, что вам остается сделать — создать сценарий, в котором вы будете работать с базой данных через ODBC. В приведенном ниже сценарии общие функции ODBC (см. выше) будут использоваться для вывода всей информации из таблицы контактов, созданной при помощи мастера Access. Однако перед рассмотрением сценария желательно знать, как таблица Contacts выглядит в Access (рис. 11.3).

Рис. 11.3. Таблица Contacts в MS Access

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

Листинг 11.7. Применение функций ODBC для работы с MS Access

Не правда ли, все просто? А самое замечательное — то, что этот сценарий полностью совместим с любой другой СУБД с поддержкой ODBC. Для тренировки попробуйте повторить все описанные действия для другой СУБД, запустите сценарий — и вы получите те же результаты, которые изображены на рис. 11.4.

Рис. 11.4. Содержимое таблицы Contacts в web-браузере

Проект: Каталог ссылок на PHP

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

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

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

mysql>create table bookmarks ( category INT, site_name char(35), url char(50),

date_added date, description char(254) );

В определении таблицы bookmarks имеется пара моментов, заслуживающих внимания. Во-первых, информация о категории сайта почему-то хранится в виде целого числа но разве не правильнее было бы сделать названия категорий более содержательными и понятными для пользователя? Не беспокойтесь, в ини-циализационном файле будет создан массив, связывающий целочисленные индексы с названиями категорий. В будущем администратор может изменять и даже удалять отдельные категории. Хранение информации о категориях заметно упрощает эту задачу. Кроме того, целочисленное поле обеспечивает экономию места на диске, поскольку название категории многократно сохраняется в таблице. Другое обстоятельство, относящееся к структуре таблицы, — ограничение длины описания 254 символами. В зависимости от этого объема описаний вместо типа char( ) можно воспользоваться типом medium или text. За дополнительной информацией о типах полей обращайтесь к документации MySQL.

Следующим шагом в работе над этим приложением будет создание инициализа-ционного файла. Помимо глобальных переменных, в инициализационном файле определяются две функции: add_bookmark( ) и view_bookmark( ). Функция add_bookmark( ) получает пользовательский ввод из формы и включает его в базу. Функция view_bookmark( ) получает индекс категории, читает из базы данных все записи, относящиеся к указанной категории, и отображает их в браузере. Инициализацион-ный файл приложения init.inc с комментариями приведен в листинге 11.8.

Листинг 11.8. Инициализационный файл каталога ссылок (init.inc)

while ($row = mysql_fetch_array($result)) ;

Основные понятия о базах данных и СУБД

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

План:

1. Основные понятия о базах данных.

2. СУБД Microsoft Access.

Основные понятия о базах данных и СУБД

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

База данных – это ИС, которая хранится в электронном виде.

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

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

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

1. По характеру хранимой информации :

— Фактографические – содержат краткие сведения об описываемых объектах, представленных в строго определённом формате (картотеки, н-р: БД книжного фонда библиотеки, БД кадрового состава учреждения),

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

2. По способу хранения данных :

— Централизованные (хранятся на одном компьютере),

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

3. По структуре организации данных :

Термин «реляционный» (от лат. relatio – отношение) указывает на то, что такая модель хранения данных построена на взаимоотношении составляющих её частей. Реляционная база данных, по сути, представляет собой двумерную таблицу. Каждая строка такой таблицы называется записью. Столбцы таблицы называются полями: каждое поле характеризуется своим именем и типом данных. Поле БД – это столбец таблицы, содержащий значения определенного свойства.

Свойства реляционной модели данных:

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

— все поля таблицы являются однородными, т.е. имеют один тип;

— одинаковые записи в таблице отсутствуют;

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

Иерархической называется БД, в которой информация упорядочена следующим образом: один элемент считается главным, остальные – подчинёнными. В иерархической базе данных записи упорядочиваются в определенную последовательность, как ступеньки лестницы, и поиск данных может осуществляться последовательным «спуском» со ступени на ступень. Данная модель характеризуется такими параметрами, как уровни, узлы, связи. Принцип работы модели таков, что несколько узлов более низкого уровня соединяются при помощи связи с одним узлом более высокого уровня.

Узел – информационная модель элемента, находящегося на данном уровне иерархии.

Свойства иерархической модели данных:

— несколько узлов низшего уровня связано только с одним узлом высшего уровня;

— иерархическое дерево имеет только одну вершину (корень), не подчинено никакой другой вершине;

— каждый узел имеет своё имя (идентификатор);

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

Иерархической базой данных является Каталог папок Windows, с которым можно работать, запустив Проводник. Верхний уровень занимает папка Рабочий стол. На втором уровне находятся папки Мой компьютер, Мои документы, Сетевое окружение и Корзина, которые представляют собой потомков папки Рабочий стол, будучи между собой близнецами. В свою очередь, папка Мой компьютер – предок по отношению к папкам третьего уровня, папкам дисков (Диск 3,5(А:), С:, D:, E:, F:) и системным папкам (Принтеры, Панель управления и др.).

Сетевой называется БД, в которой к вертикальным иерархическим связям добавляются горизонтальные связи. Любой объект может быть главным и подчинённым.

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

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

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

Основные действия, которые пользователь может выполнять с помощью СУБД:

— создание структуры БД;

— заполнение БД информацией;

— изменение (редактирование) структуры и содержания БД;

— поиск информации в БД;

— проверка целостности БД.

Современные СУБД дают возможность включать в них не только текстовую и графическую информацию, но и звуковые фрагменты и даже видеоклипы.

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

Популярные СУБД — FoxPro, Access for Windows, Paradox.

Таким образом, необходимо различать собственно базы данных (БД) – упорядоченные наборы данных, и системы управления базами данных (СУБД) – программы, управляющие хранением и обработкой данных. Например, приложение Access, входящее в офисный пакет программ Microsoft Office, является СУБД, позволяющей пользователю создавать и обрабатывать табличные базы данных.

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

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

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

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

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

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

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

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

Далее на примере одной из самых распространенных систем управления базами данных – Microsoft Access входит в состав популярного пакета Microsoft Office – мы познакомимся с основными типами данных, способами создания баз данных и с приемами работы с базами данных.

Не нашли то, что искали? Воспользуйтесь поиском:

ОСНОВНЫЕ ПРИНЦИПЫ РАБОТЫ С БАЗАМИ ДАННЫХ

Цель работы:получить представление о базах данных; ознакомиться с программой MICROSOFT ACCESSи входящими в нее объектами; получить практические навыки по созданию баз данных.

Теоретические сведения

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

Таблицы

Основной частью каждой базы данных являются ее таблицы. Таблица базы данных во многом похожа на электронную таблицу. На рисунке 17.1 показана таблица данных ACCESS.

Рисунок 17.1 — Таблица данных ACCESS

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

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

На пересечении поля и строки располагается часть данных определенной записи. Эта область называется ячейкой.

В каждом файле базы данных может быть несколько таблиц.

Формы, Отчеты, Запросы

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

Форма представляет собой обычный бланк с полями, который необходимо заполнить. ACCESSсвязывает форму с таблицей. На рисунке 17.2 приведена форма, по которой создавалась таблица, показанная на рисунке 17.1.

Рисунок 17.2 — Форма для ввода данных в таблицу Трехфазные двухобмоточные трансформаторы

Отчет предназначен для вывода информации на печать. Это специально оформленные данные, организованные в соответствии с описанием, заданным пользователем.

Запрос— это способ отбора из базы данных нужной на данный момент информации. Он представляет собой фильтр, который отсеивает излишние данные.

Подробнее составление форм, отчетов и запросов будет рассмотрено в лабораторной работе №19.

Мастера ACCESS

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

Рисунок 17.3 — Одно из диалоговых окон Мастера отчетов

Каждый раз при создании нового объекта (таблицы, формы, отчета) Вы можете либо самостоятельно создать его “с нуля”, либо воспользоваться помощью Мастера.

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

Запуск и внешний вид программы ACCESS

Для запуска ACCESSвГлавном меню выберите Microsoft Access. Окно программы, как и многие другие окна программWindows,содержитСтроку меню, Панель инструментов, Рабочую область иСтроку состояния (рисунок 17.4).

Кнопки панели инструментов используются для быстрого выполнения некоторых команд и меняются в зависимости от объекта, с которым Вы в данный момент работаете. Для того чтобы понять, какие действия можно выполнять с помощью каждой из кнопок панели инструментов, подведите к ней указатель мыши. Рядом с указателем появится название кнопки (рисунок 17.4).

Рисунок 17.4 — Внешний вид окна ACCESS

Создание новой базы данных

После первого запуска ACCESSна экране появляется диалоговое окно ACCESS(рисунок 17.5), с помощью которого можно создать новую или открыть уже существующую базу данных. Для того чтобы создать новую базу данных, выберите Новая база данных и нажмите кнопку ОК.

Рисунок 17.5 — Создание новой базы данных

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

При необходимости выберите вкладку Общие. Затем щелкните дважды значок Новая база данных. Появится диалоговое окно Файл новой базы данных. Введите название новой базы данных и щелкните кнопку Создать. ACCESSсоздаст новую пустую базу данных.

17.1.6 Создание базы данных с помощью Шаблонов

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

· если Вы только что запустили программу ACCESSи диалоговое окно (рисунок 17.5) все еще находится на экране, щелкните кнопку Общие шаблоны, а затем ОК.Если Вы уже закрыли это окно, выберите команду Файл, Создать. Появится диалоговое окно Создание;

· щелкните вкладку Базы данных, чтобы отобразить список Шаблонов (рисунок 17.6);

Рисунок 17.6 — Диалоговое окно выбора Шаблона

· найдите нужный вам Шаблон (например, Контакты)и щелкните кнопку ОК;

· вдиалоговом окне Файл новой базы данных нажмите кнопку Создать. Запустится Шаблон и появится диалоговое окно 1, объясняющее, что этот Шаблон будет делать (рисунок 17.7);

· щелкните кнопку Далее.Появитсядиалоговое окно 2 (рисунок 17.8).В левом списке указаны таблицы, которые может создать Шаблон, а в правом — поля, которые будет включать в себя таблица. Щелкнув по ним мышью, их можно включить в таблицу;

· щелкните кнопку Далее и в появившемся диалоговом окне выберите вид оформления экрана. Выбранный вид отображается в области просмотра;

Рисунок. 17.7 — Диалоговое окно 1 Создание баз данных

Рисунок 17.8 — Диалоговое окно 2 Создание баз данных

· нажав кнопку Далее выберите вид оформления отчета для печати;

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

· после нажатия кнопки Готовобудет создана новая база данных.

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

Рисунок 17.9 — Главная кнопочная форма базы данных, созданной по Шаблону Контакты

Сохранение баз данных

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

Порядок выполнения работы

1. Изучите теоретические сведения.

2. Запустите программу ACCESSи ознакомьтесь с меню.

3. На диске, указанном преподавателем, создайте новую базу данных с помощью Мастера.

4. Закройте кнопочную форму и посмотрите, какие элементы созданы в базе данных.

5. Удалите базу данных, созданную Мастером.

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

7.Выйдите изACCESS.

8. Ответьте на контрольные вопросы.

Содержание отчета

2. Краткое описания хода выполнения лабораторной работы.

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

17.4 Контрольные вопросы

1. Какие объекты входят в состав ACCESS и для чего они предназначены?

2. Из каких элементов состоит окно ACCESS?

3. Какие кнопки находятся на панели инструментов и какие действия они позволяют выполнять?

4. Какие команды содержатся в Строке меню и каково их назначение?

5. Каково назначение строки состояния?

6. Для чего предназначены Формы?

7. Каково назначениеОтчетов?

8. Какие функции выполняют Запросы?

9. Каково назначение Шаблонов?

10. Как можно создать новую базу данных?

11. Как создать базу данных при помощи Шаблона?

12. Что представляет собой Главная кнопочная форма?

ЛАБОРАТОРНАЯ РАБОТА № 18

РАБОТА С ТАБЛИЦАМИ ACCESS

Цель работы: научиться создавать таблицы с помощью Мастерови в режиме Конструктора; получить навыки работы с таблицами.

Теоретические сведения

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

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

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

Создать таблицу можно с помощью режима Конструктора таблиц или использовать Мастер таблиц.

Последнее изменение этой страницы: 2020-04-26; Нарушение авторского права страницы

Илон Маск рекомендует:  Шаблон сайта фирма HTML, CSS, JavaScripts, 5 страниц
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL