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

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

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

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

Что нужно, для того чтобы создать базу данных в Microsoft SQL Server?

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

  1. У Вас должна быть установлена СУБД Microsoft SQL Server. Для обучения идеально подходит бесплатная редакция Microsoft SQL Server Express. Если Вы еще не установили SQL сервер, то вот подробная видео-инструкция , там я показываю, как установить Microsoft SQL Server 2017 в редакции Express;
  2. У Вас должна быть установлена среда SQL Server Management Studio (SSMS). SSMS – это основной инструмент, с помощью которого осуществляется разработка баз данных в Microsoft SQL Server. Эта среда бесплатная, если ее у Вас нет, то в вышеупомянутой видео-инструкции я также показываю и установку этой среды;
  3. Спроектировать базу данных. Перед тем как переходить к созданию базы данных, Вы должны ее спроектировать, т.е. определить все сущности, которые Вы будете хранить, определить характеристики, которыми они будут обладать, а также определить все правила и ограничения, применяемые к данным, в процессе их добавления, хранения и изменения. Иными словами, Вы должны определиться со структурой БД, какие таблицы она будет содержать, какие отношения будут между таблицами, какие столбцы будет содержать каждая из таблиц. В нашем случае, т.е. при обучении, этот этап будет скорей формальным, так как правильно спроектировать БД начинающий не сможет. Но начинающий должен знать, что переходить к созданию базы данных без предварительного проектирования нельзя, так как реализовать БД, не имея четкого представления, как эта БД должна выглядеть в конечном итоге, скорей всего не получится;
  4. Создать пустую базу данных. В среде SQL Server Management Studio создать базу данных можно двумя способами: первый — с помощью графического интерфейса, второй — с помощью языка T-SQL;
  5. Создать таблицы в базе данных. К этому этапу у Вас уже будет база данных, но она будет пустая, так как в ней еще нет никаких таблиц. На этом этапе Вам нужно будет создать таблицы и соответствующие ограничения ;
  6. Наполнить БД данными. В базе данных уже есть таблицы, но они пусты, поэтому сейчас уже можно переходить к добавлению данных в таблицы ;
  7. Создать другие объекты базы данных. У Вас уже есть и база данных, и таблицы, и данные, поэтому можно разрабатывать другие объекты БД, такие как: представления, функции, процедуры, триггеры, с помощью которых реализуется бизнес-правила и логика приложения.

Вот это общий план создания базы данных, который Вы должны знать, перед тем как начинать свое знакомство с Microsoft SQL Server и языком T-SQL.

В этой статье мы рассмотрим этап 4, это создание пустой базы данных, будут рассмотрены оба способа создания базы данных: и с помощью графического интерфейса, и с помощью языка T-SQL. Первые три этапа Вы должны уже сделать, т.е. у Вас уже есть установленный SQL Server и среда Management Studio, и примерная структура базы данных, которую Вы хотите реализовать, как я уже сказал, на этапе обучения этот пункт можно пропустить, а в следующих материалах я покажу, как создавать таблицы в Microsoft SQL Server пусть с простой, но с более-менее реальной структурой.

Создание базы данных в SQL Server Management Studio

Первое, что Вам нужно сделать, это запустить среду SQL Server Management Studio и подключиться к SQL серверу.

Затем в обозревателе объектов щелкнуть по контейнеру «Базы данных» правой кнопкой мыши и выбрать пункт «Создать базу данных» .


В результате откроется окно «Создание базы данных» . Здесь обязательно нужно заполнить только поле «Имя базы данных» , остальные параметры настраиваются по необходимости. После того, как Вы ввели имя БД, нажимайте «ОК».


Если БД с таким именем на сервере еще нет, то она будет создана, в обозревателе объектов она сразу отобразится.


Как видите, база данных создана, и в этом нет ничего сложного.

Создание базы данных на T-SQL (CREATE DATABASE)

Процесс создания базы данных на языке T-SQL, наверное, еще проще, так как для того чтобы создать БД с настройками по умолчанию (как мы это сделали чуть выше ), необходимо написать всего три слова в редакторе SQL запросов – инструкцию CREATE DATABASE и название БД.

Сначала открываем редактор SQL запросов, для этого щелкаем на кнопку «Создать запрос» на панели инструментов.


Затем вводим следующую инструкцию, и запускаем ее на выполнение, кнопка «Выполнить» .

CREATE DATABASE TestDB;

Где CREATE – это команда языка T-SQL для создания объектов на SQL сервере, командой DATABASE мы указываем, что хотим создать базу данных, а TestDB — это имя новой базы данных.

Конечно же, на данном этапе многие не знают ни Microsoft SQL Server, ни языка T-SQL, многие, наверное, как раз и создают базу данных для того, чтобы начать знакомиться с этой СУБД и начать изучать язык T-SQL. Поэтому чтобы Вам легче было это делать, советую почитать книгу «Путь программиста T-SQL » — это самоучитель по языку Transact-SQL для начинающих, в которой я подробно рассказываю как про основные конструкции, так и про продвинутые конструкции языка T-SQL, и последовательно перехожу от простого к сложному.

С помощью инструкции CREATE DATABASE можно задать абсолютно все параметры, которые отображались у нас в графическом интерфейсе SSMS. Например, если бы мы заменили вышеуказанную инструкцию следующей, то у нас база данных создалась бы в каталоге DataBases на диске D.

Создание БД TestDB CREATE DATABASE TestDB ON PRIMARY --Первичный файл (NAME = N"TestDB", --Логическое имя файла БД FILENAME = N"D:\DataBases\TestDB.mdf" --Имя и местоположение файла БД) LOG ON --Явно указываем файлы журналов (NAME = N"TestDB_log", --Логическое имя файла журнала FILENAME = N"D:\DataBases\TestDB_log.ldf" --Имя и местоположение файла журнала) GO


Удаление базы данных в Microsoft SQL Server

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

В случае с графическим интерфейсом необходимо в обозревателе объектов щелкнуть правой кнопкой мыши по нужной базе данных и выбрать пункт «Удалить» .

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

В окне «Удаление объекта» нажимаем «ОК». Для принудительного закрытия существующих подключений к БД можете поставить галочку «Закрыть существующие соединения» .


В случае с T-SQL, для удаления базы данных достаточно написать следующую инструкцию (в БД также никто не должен работать ).

DROP DATABASE TestDB;

Где DROP DATABASE — это инструкция для удаления базы данных, TestDB – имя базы данных. Иными словами, командой DROP объекты на SQL сервере удаляются.

Видео-урок по созданию базы данных в Microsoft SQL Server

На этом наш сегодняшний урок закончен, надеюсь, материал был Вам интересен и полезен, в следующем материале я расскажу про то, как создавать таблицы в Microsoft SQL Server, удачи Вам, пока!

Создайте базу данных. В командной строке MySQL введите команду CREATE DATABASE ; . Замените названием вашей базы данных. Оно не может содержать пробелы.

  • К примеру, чтобы создать базу данных всех американских штатов, можно ввести CREATE DATABASE us_states;
  • Примечание: Команды необязательно вводить в верхнем регистре.
  • Примечание: Все команды MySQL должны оканчиваться ";". Если вы забыли поставить точку с запятой, то просто введите ";" на следующей строке, чтобы началась обработка предыдущей команды.

Отобразите список доступных баз данных. Введите команду SHOW DATABASES; , чтобы отобразить список хранящихся баз данных. Кроме только что созданной базы данных, вы так же увидите базы данных mysql и test . Сейчас можете их проигнорировать.

Выберите базу данных. Когда база данных создана, нужно ее выбрать, чтобы начать редактирование. Введите команду USE us_states; . Вы увидите сообщение Database changed , которое уведомляет, что сейчас активной базой данных является us_states .

Создайте таблицу. Таблица - это место хранения информации в базе данных. Чтобы создать таблицу, нужно одной командой ввести всю ее структуру. Чтобы создать таблицу, введите такую команду: CREATE TABLE states (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, state CHAR(25), population INT(9)); . Эта команда создаст таблицу под названием "states" с тремя полями: id , state , and population .

  • Команда INT указывает на то, что поле id будет содержать только числа (целые числа).
  • Команда NOT NULL указывает на то, что поле id не должно быть пустым (обязательно для ввода).
  • PRIMARY KEY обозначает, что поле id является ключевым полем в таблице. Ключевое поле - это поле, которое не может содержать одинаковых значений.
  • Команда AUTO_INCREMENT будет автоматически присваивать возрастающие значения полю id , по сути автоматически нумеруя каждую запись.
  • Команды CHAR (символы) and INT (целые числа) обозначают тип данных, допустимый в соответствующих полях. Число, следующее за командой, обозначает сколько символов или цифр поле может содержать.
  • Создайте запись в таблице. Теперь, когда таблица создана, настало время вводить информацию. Используйте следующую команду, чтобы ввести первую запись: INSERT INTO states (id, state, population) VALUES (NULL, ‘Alabama’, ‘4822023’);

    • Эта команда, по сути, говорит базе данных сохранить информацию в таблице в трех соответствующих полях.
    • Поскольку поле id содержит идентификатор NOT NULL , то ввод NULL в качестве значения, заставит его увеличится на единицу, благодаря идентификатору AUTO_INCREMENT .
  • Создайте больше записей. Можно сохранить много записей с помощью одной команды. Чтобы сохранить еще три штата, введите такую команду: INSERT INTO states (id, state, population) VALUES (NULL, ‘Alaska’, ‘731449’), (NULL, ‘Arizona’, ‘6553255’), (NULL, ‘Arkansas’, ‘2949131’); .

  • Выполните запрос к базе данных. Теперь, когда простая база данных создана, вы можете выполнять запросы, чтобы извлекать нужную информацию. Для начала введите следующую команду: SELECT * FROM us_states; . Этот запрос вернет всю базу данных, что показано командой "*", которая означает "все".

    • Для более трудного запроса, введите такую команду: SELECT state, population FROM us_states ORDER BY population; Этот запрос вернет таблицу со штатами, отсортированными по количеству населения, вместо сортировки по имени в алфавитном порядке. Поле id не будет отображено, поскольку вы просили только поля state и population .
    • Чтобы отобразить штаты по количеству населения в обратном порядке, используйте следующую команду: SELECT state, population FROM us_states ORDER BY population DESC; . Команда DESC отобразит штаты по убыванию количества населения (от большего к меньшему, а не от меньшего к большему).
  • Создание баз данных

    Цель работы: изучение основных принципов работы и способов создания баз данных в среде MS Access

    Краткие сведения о MS Access

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

    Объекты MS Access:

    Таблицы - основной объект любой БД; в таблицах хранятся все данные, имеющиеся в БД; таблицы хранят и структуру базы (поля, их типы и свойства).

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

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

    Отчеты - объект, предназначенный только для вывода данных на печатное устройство.

    Страницы - специальный объект БД (MS Access 2000) выполненный в коде HTML и размещаемый на Web - странице, осуществляющий интерфейс между клиентом, сервером и базой данных, размещенной на сервере.

    Макросы и модули - это категории объектов, предназначенные для автоматизации повторяющихся операций при работе с СУБД.

    СУБД MS Access предоставляет несколько средств создания каждого из основных объектов БД. Эти средства можно классифицировать как:

    ручные (разработка объектов в режиме Конструктора) ;

    автоматизированные (разработка с помощью программ - мастеров);

    автоматические (средства ускоренной разработки простейших объектов).

    При разработке таблиц и запросов рекомендуется использовать ручные средства - работать в режиме Конструктора. При разработке форм, отчетов, наоборот, лучше пользоваться автоматизированными средствами, предоставляемыми мастерами. Это связано с тем, что для данных объектов большую роль играет внешний вид (дизайн этих объектов). Разработка Страниц, Макросов и Модулей в рамках общетехнического курса «Информатика» не рассматривается, так, как эти средства ориентированы на профессиональных разработчиков баз данных.

    Работа с любыми объектами Access начинается с окна базы данных. Окно БД содержит перечень всех объектов БД на закладках. Окно БД открыто первоначально на закладке «Таблицы». Справа на панели окна БД сосредоточены три кнопки управления: «Открыть», «Конструктор», «Создать».

    Работа с таблицами

    Таблицы являются основными объектами любой БД. Структуру двумерной таблицы образуют столбцы и строки. Их аналогами в структуре простейшей БД являются поля и записи.

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

    Записи - (горизонтальные) строки данных в таблицах. Каждая запись представляет собой элемент связанных данных.

    Свойства полей БД:

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

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

    MS Access работает со следующими типами данных:

    • - текстовый - тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов);
    • - Поле Мемо - специальных типов данных для хранения больших объектов текста (до 65 535 символов);
    • - числовой - тип данных для хранения действительных чисел.
    • - денежный - тип данных для хранения денежных сумм.
    • - счетчик - специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием.
    • - дата/ время - тип данных для хранения календарных дат и текущего времени.
    • - логический - тип для хранения логических данных (могут принимать только два значения, например ДА или НЕТ).

    Создание таблиц

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

    Для создания таблицы «вручную» следует:

    в окне БД на закладке «Таблицы» нажать кнопку «Создать»;

    в окне «Новая таблица» нажать кнопку «Конструктор».

    Появившееся окно Конструктора таблиц фактически является бланком для создания и редактирования структуры таблиц.

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

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

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

    Ключевое поле или первичный ключ - это поле, значения которого однозначно определяют запись в таблице.

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

    Созданную новую таблицу открывают в окне БД двойным щелчком на ее значке или нажатием на кнопку «Открыть». Новая таблица не имеет записей - только названия столбцов, характеризующих структуру таблицы. Заполнение таблицы данными производится обычным порядком. Курсор ввода устанавливается в нужную ячейку указателем мыши. Шириной столбцов можно управлять методом перетаскивания их границ. Можно использовать автоматическое форматирование столбцов «по - содержимому». Для этого - установить указатель мыши на границу между столбцами (в строке заголовков столбцов), и когда указатель сменит форму, выполнить двойной щелчок.

    После наполнения таблицы данными сохранять их не надо - все сохранится автоматически. Однако, если при работе с таблицей произошло редактирование ее макета (например, изменялась ширина столбцов), то СУБД попросит подтвердить сохранение этих изменений.

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

    Создание межтабличных связей

    Реляционная связь между таблицами имеет два основных назначения:

    • - обеспечение целостности данных;
    • - автоматизация задач обслуживания базы.

    Связь между таблицами позволяет:

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

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

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

    Работа с запросами

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

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

    Основными типами запросов являются:

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

    Создание запроса

    Запросы могут создаваться двумя способами: “вручную” и с помощью мастеров запроса. Имеется четыре мастера запросов:

    мастер простых запросов;

    мастер перекрестных запросов;

    мастер повторяющихся записей;

    мастер записей без подчинения.

    В окне БД на закладке “Запросы” нажать кнопку “Создать”. В окне “Новый запрос” выбрать “Конструктор” и нажать кнопку “ОК”. Открывается окно бланка запроса. Бланк запроса состоит из 2-х областей. В верхней области отображается структура таблиц, к которым запрос адресован. Эти таблицы выбираются из окна «Добавление таблицы», открывающегося на панели инструментов кнопкой “Добавление таблицы”.

    Нижняя область бланка разбита на столбцы - по одному столбцу на каждое поле будущей результирующей таблицы. Для заполнения этих столбцов в верхней области бланка щелкают двойными щелчками на названиях полей, необходимых для результирующей таблицы (запроса) при этом автоматически заполняются столбцы в нижней области бланка. Формируется структура запроса: заполняются строки: “Поле”, “Имя таблицы”, из которой выбрано это поле.

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

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

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

    - > (больше), < (меньше), = (равно), >< (не равно).

    Например: а) Условие отбора по текстовому полю «ФИО» задано >К. Это значит в поле «ФИО» будут выбраны фамилии, начинающиеся на буквы от К до Я.

    • б) Условие отбора по числовому полю «Цена» задано
    • - * - замена нескольких символов.

    Например: Условие отбора по текстовому полю «ФИО» задано *ов. Это значит в поле «ФИО» будут выбраны фамилии, оканчивающиеся на «ов», независимо от того, сколько впереди символов.

    Замена одного символа.

    Например: Условие отбора по числовому полю «Цена» задано?0. Это значит в поле «Цена» будут выбраны только значения 10, 20, 30, 40, 50, 60, 70, 80, 90.

    • - is null - поиск по «пустому» значению поля;
    • - is not null - поиск по «не пустому» значению поля.

    Например, в исходной таблице поле "Размер премиальных" содержит помимо размера премии у некоторых сотрудников пустые, незаполненные строки у сотрудников, которые не получили премии. Условие отбора по полю "Размер премиальных" задано is null. Это значит в результирующей таблице (запросе), при условии ввода в нее поля "ФИО", будут выданы фамилии сотрудников, не получивших премию.

    - «between значение 1 and значение 2» - поиск по интервалу между значением 1 и значением 2.

    Например, условие отбора по полю "Дата рождения" задано between 01.01.82 and 31.12.82. Это значит в поле "Дата рождения" будут выбраны только даты родившихся в 1982 году.

    При задании условий отбора в строку по нескольким полям между ними устанавливается логическое “И”, в столбец - логическое “ИЛИ”. Сформировав в бланке запроса по образцу структуру запроса, его закрывают, дают ему имя и далее запускают двойным щелчком на значке в окне База данных. Запустить запрос можно также в окне бланка запроса, щелкнуть на Панели инструментов кнопку с восклицательным знаком красного цвета. Порядок действий, рассмотренный выше, позволяет создать простейший запрос, называемый запросом на выборку.

    Работа с формами

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

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

    Простая форма - форма, которая создается на базе только одной таблицы или запроса.

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

    Создание формы

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

    Полностью автоматические средства создания форм называются автоформами. Существует три вида автоформ:

    • - "в столбец" - все поля одной записи отображаются в столбец;
    • - ленточная - одновременно отображается группа записей;
    • - табличная - по внешнему виду не отличается от таблицы, на которой она основана.

    Для создания автоформы следует:

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

    Автоформа создает только простые формы.

    Создание формы с помощью мастера

    Мастер форм - специальное программное средство, создающее структуру формы в режиме диалога с разработчиком. Мастера форм можно запустить из основного окна Базы данных щелчком на значке Создание формы с помощью мастера на вкладке Формы.

    • 1. На первом этапе работы Мастера форм выбирают таблицы (или запросы) и поля, которые войдут в будущую форму.
    • 2. На втором этапе выбирается внешний вид формы.
    • 3. На третьем этапе выбирается стиль оформления формы.
    • 4. На последнем этапе выполняется сохранение формы под заданным именем.

    Работа с отчетами

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

    Создание отчета

    Отчеты, как и формы, проектируются тремя способами: “вручную”, автоматически (Автоотчет) и автоматизированным способом (Мастер отчетов). Рекомендуется создавать отчеты двумя последними способами, а редактировать структуру готового отчета в режиме Конструктора. Автоотчет запускается по команде: База данных - Создать - Новый отчет - Автоотчет в столбец. Кроме автоотчета "в столбец" существуют "ленточные" автоотчеты. Их структуры аналогичны соответственно форме "в столбец" и ленточной форме.

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

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

    Упражнения

    Создание базовых таблиц

    • 1. Запустите программу MS Access.
    • 2. В окне MS Access включите переключатель Новая база данных и ОК.
    • 3. В окне Файл новой базы данных выберите папку Мои документы и дайте файлу имя Деканат. Убедитесь, что в качестве типа файла выбрано Базы данных MS ACCESS и щелкните на кнопке Создать. Откроется окно новой базы - Деканат: база данных.
    • 4. Открыта вкладка "Таблицы". Щелкните на кнопке - Создать.
    • 5. В окне Новая таблица выберите режим Конструктор, щелкните ОК. Откроется бланк создания структуры таблицы.
    • 6. Для первой таблицы введите следующие поля:
    • 7. Щелкните на поле Год рождения. В нижней части бланка Свойства поля из раскрывающегося списка задайте формат поля: Краткий формат даты. access запрос межтабличный
    • 8. Задайте Ключевое поле. Уникальным полем в таблице является поле № зачетной книжки. Выделите его щелчком правой кнопки мыши, откройте контекстное меню и выберите в нем пункт Ключевое поле.
    • 9. Закройте окно Конструктора. При закрытии окна дайте первой таблице имя сведения о студентах.
    • 10. На вкладке Таблицы создайте вторую таблицу Сведения о группах. Для этого нажмите на кнопку Создать.
    • 11. Повторив действия пунктов 6-9, создайте таблицу Сведения о группах, в которую входят следующие поля:

    Ключевое поле - № группы

    • 12. В окне Деканат: база данных откройте по очереди созданные таблицы и заполните их: в таблице Сведения о студентах 20 записей, а в таблице Сведения о группах 5 записей. Причем № группы таблицы Сведения о студентах должно содержать все номера групп (они могут и должны повторяться) из таблицы Сведения о группах.
    • 13. Закончив работу, закройте таблицы.

    Создание базовых таблиц

    • 1. Находясь в основном окне БД Деканат, найдите на панели инструментов кнопку Схема данных или выполните команду строки меню Сервис - Схема данных.
    • 2. Одновременно с открытием окна Схема данных, открывается диалоговое окно Добавление таблицы, на вкладке Таблицы выберите Сведения о группах, нажмите кнопку Добавить. Затем выберите Сведения о студентах, нажмите кнопку Добавить. Щелкните на кнопку Закрыть.
    • 3. В окне Схема данных откроются списки полей таблиц Сведения о группах и Сведения о студентах. При нажатой левой кнопке мыши выделите в таблице Сведения о группах ключевое поле № группы, мышью перетащите это поле в таблицу Сведения о студентах. При отпускании кнопки мыши автоматически откроется диалоговое окно Изменение связей.
    • 4. Установите флажки Обеспечение целостности данных, Каскадное обновление полей и Каскадное удаление связанных записей.
    • 5. Закройте окно Изменение связей и в окне Схема данных рассмотрите образовавшуюся связь. Тип связи один - ко - многим (1 -), что означает в одной группе учатся много студентов.
    • 6. Закройте окно Схема данных.

    Создание запроса на выборку

    Задание: Из общего списка студентов данного факультета выберите студентов только 1 курса; студентов, фамилии которых начинаются с буквы «А»; студентов одной группы; студентов, родившихся в одном месяце; найдите сведения о студентах по № зачетной книжки.

    • 1. Находясь в основном окне БД Деканат, откройте вкладку Запросы и щелкните на кнопку Создать.
    • 2. В окне Новый запрос выберите режим Конструктор и ОК. Откроется бланк запроса по образцу. Одновременно с ним откроется диалоговое окно Добавление таблицы выберите таблицу Сведения о студентах и щелкните на кнопке Добавить.
    • 3. Выберите таблицу Сведения о группах и щелкните на кнопке Добавить. Закройте окно Добавление таблицы.
    • 4. Поместите в нижнюю область бланка следующие поля из таблицы Сведения о студентах: ФИО, Год рождения, Адрес; из таблицы Сведения о группах - поле Курс.
    • 5. Задайте сортировку по возрастанию по полю ФИО (по алфавиту от А до Я).
    • 6. Для поиска (или отбора) студентов 1 курса из общего списка студентов задайте условие отбора для поля Курс: в соответствующую строку введите 1.
    • 7. Закройте бланк запроса по образцу. При закрытии запроса введите его имя Студенты 1 курса.
    • 8. В окне Деканат: база данных откройте только что созданный запрос и просмотрите результирующую таблицу.
    • 9. Для поиска студентов, фамилии которых начинаются с определенной буквы (например, А) повторите пункты с 1 по 6 , затем задайте условие отбора для поля ФИО. В соответствующую строку бланка запроса введите: А*.
    • 10. Просмотрите созданный запрос. Для чего в окне бланка запроса на Панели инструментов щелкните на кнопку! - «восклицательный знак».
    • 11. Закройте запрос и введите его имя - Фамилии на А.
    • 12. Аналогично найдите сведения о студентах, родившихся в один месяц. Дайте запросу имя Родившиеся в одном месяце.
    • 13. Найдите студентов, учащихся в одной группе. Дайте запросу имя Студенты одной группы.
    • 14. Найдите студентов, номера зачетных книжек которых больше определенного номера.. Дайте запросу имя По № зачетной книжки.
    • 8.6.4 Создание итогового запроса

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

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

    • 1. В окне Деканат: база данных откройте вкладку Таблицы, выберите таблицу Сведения о студентах.
    • 2. Щелчком на значке Конструктор откройте таблицу в режиме проектирования: необходимо создать дополнительное поле Размер стипендии, в котором будут храниться сведения о размере стипендии каждого студента.
    • 3. Выделите поле № группы и нажмите на клавишу INSERT, перед полем № группы будет вставлено новое поле. Введите имя нового поля Размер стипендии и определите его тип - Денежный.
    • 4. Закройте окно конструктора. При закрытии подтвердите необходимость изменить структуру таблицы.
    • 5. Откройте таблицу Сведения о студентах и заполните содержанием поле Размер стипендии.
    • 6. Закройте таблицу Сведения о студентах.
    • 7. Откройте закладку Запросы и щелкните на кнопку Создать.
    • 8. В окне Новый запрос щелкните на кнопке Конструктор.
    • 9. В открывшемся окне Добавление таблицы выберите таблицы Сведения о студентах и Сведения о группах. Закройте окно Добавление таблицы.
    • 10. В нижнюю область бланка запроса по образцу введите следующие поля: из таблицы Сведения о группах - Курс, из таблицы Сведения о студентах - Размер стипендии.
    • 11. Для поля Курс введите сортировку по возрастанию.
    • 12. На Панели инструментов щелкните на кнопку - групповые операции (или меню Вид/групповые операции). В нижней части бланка появится строка Групповые операции. Все поля, отобранные для запроса, получат в этой строке значение группировка.
    • 13. Для поля, по которому производится группировка записей (в нашем случае - Курс), оставьте в строке Групповые операции значение Группировка. Для остальных полей щелкните в этой строке, появится кнопка раскрывающегося списка, из которого можно выбрать итоговую функцию для расчета значений в данном поле.
    • 14. Для поля Размер стипендии выберите итоговую функцию Sum для определения суммарного размера стипендии.
    • 15. Закройте бланк запроса и дайте ему имя Суммарная стипендия по курсам. Запустите запрос и убедитесь, что он правильно работает.
    • 16. Проверьте на вкладке Запросы наличие шести запросов: "Студенты 1 курса", "Фамилии на А", "Родившиеся в одном месяце", "Студенты одной группы", "Суммарная стипендия по курсам".

    Создание автоформы

    Задание: создайте три простые формы с помощью автоформ: "в столбец", ленточную и табличную.

    • 1. В основном окне Деканат: база данных откройте вкладку Формы и щелкните на кн. Создать.
    • 2. В окне Новая форма выбрать тип автоформы - "в столбец" и в правом нижнем углу окна из раскрывающегося списка выбрать таблицу Сведения о студентах. Нажать ОК. Автоформа формируется автоматически. Дать ей имя Форма сведения о студентах.
    • 3. Повторите пункты 1-3 для создания ленточной автоформы на базе таблицы Сведения о группах, дайте ей имя Форма сведения о группах.
    • 4. Повторите пункты 1-3 для создания табличной формы на базе запроса Студенты 1 курса. Дайте ей имя Форма студенты 1 курса.

    Создание формы с помощью Мастера форм

    Задание: Создайте сложную форму на базе двух таблиц.

    • 1. В основном окне Деканат: база данных откройте вкладку Формы и щелкните на кнопку Создать.
    • 2. В окне Новая форма выберите Мастер форм. Описание мастера появляется в левой части диалогового окна. ОК.

    Примечание. При использовании Мастера форм источник данных для формы следует указывать в следующем диалоговом окне Создание форм.

    • 3. В окне Создание форм выберите имя таблицы Сведения о студентах. С помощью кнопки перенесите в правый пустой столбец Выбранные поля все поля из левого столбца Доступные поля, содержащего поля таблицы Сведения о студентах.
    • 4. Выберите имя таблицы Сведения о группах. Из столбца Доступные поля перенесите в правый столбец Выбранные поля поле Курс. Нажмите кнопку Далее.
    • 5. В появившемся следующем окне Создание форм выберите внешний вид формы - в один столбец. Нажмите Далее.
    • 6. В следующем окне Мастер предлагает несколько различных стилей оформления формы. Просмотрите их (слева появляются изображения этих стилей и виды подписей на них). Выберите стиль "Сумерки" и нажмите Далее.
    • 7. Задайте имя формы Ввод данных о студентах. Нажмите кнопку Готово.
    • 8. Просмотрите готовую форму. Введите данные для нового студента.
    • 9. Закройте окно формы Ввод данных о студентах.
    • 10. Откройте вкладку Таблицы. Выберите таблицу Сведения о студентах. Нажмите кнопку Открыть. Просмотрите, появились ли в ней сведения о новом студенте.
    • 11. Закройте таблицу Сведения о студентах.

    Создание автоотчета

    • 2 В окне Новый отчет выбрать тип автоотчета - "в столбец" и в правом нижнем углу окна из раскрывающегося списка выбрать запрос Родившиеся в одном месяце. Нажать ОК.
    • 3. Автоотчет формируется автоматически. Дать ему имя Отчет о родившиеся в одном месяце.
    • 4. Повторите пункты 1-3 для создания ленточного автоотчета на базе запроса Фамилии на А, дайте ему имя Отчет о студентах, фамилии которых начинаются на А.

    Создание отчета с помощью Мастера отчетов

    Задание: Создайте итоговый отчет на базе двух таблиц.

    • 1. В основном окне Деканат: база данных откройте вкладку Отчеты и нажмите на кнопку Создать.
    • 2 В окне Новый отчет выберите Мастер отчетов. Описание мастера появляется в левой части диалогового окна. Нажмите кнопку ОК.

    Примечание. При использовании Мастера отчетов источник данных для отчета следует указывать в следующем диалоговом окне Создание отчета.

    • 3. В окне Создание отчета выберите имя таблицы Сведения о студентах. С помощью кнопки перенесите в правый пустой столбец Выбранные поля все поля из левого столбца Доступные поля, содержащего поля таблицы Сведения о студентах. Выберите имя таблицы Сведения о группах. Из столбца Доступные поля перенесите в правый столбец Выбранные поля поле Курс. Нажмите кнопку Далее.
    • 4. В следующем окне Мастера отчетов выбираются уровни группировки. Выбрать группировку по полю Курс. Нажать Далее.
    • 5. В следующем окне задается порядок сортировки записей по полям (не более четырех), если это необходимо. Выбрать сортировку по возрастанию по полю ФИО. В этом же окне формируется итоговый отчет. Для этого нажать кнопку Итоги. В появившемся окне задать по полю Размер стипендии вычисление функции Sum, для этого поставить флажок под этой функцией. Нажать Далее.
    • 6. В появившемся окне Создание отчета выберите вид макета для отчета - ступенчатый, ориентация - книжная. Нажмите Далее.
    • 7. В следующем окне Мастер предлагает несколько различных стилей оформления отчетов. Просмотрите их (слева появляются изображения этих стилей и виды подписей на них). Выберите стиль "Строгий" и нажмите Далее.
    • 8. Задайте имя отчета Отчет о студентах по курсам. Нажмите кнопку Готово.
    • 9. Просмотрите готовый отчет и закройте окно отчета.

    Индивидуальные задания

    Создайте базу данных для заданной предметной области (варианты заданий выдаются преподавателем).

    База данных должна содержать:

    не менее 2-х таблиц, каждая из которых содержит не менее 10 записей;

    межтабличные связи;

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

    простые формы для ввода данных по исходным таблицам и одну сложную форму;

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

    Базы данных на ПК развивались по направлению от настольных (desktop), или локальных приложений, когда реально с БД могло работать одно приложение, до систем коллективного доступа к БД.
    Локальное приложение устанавливалось на единичном ПК; там же располагалась и база данных (БД), с которой работало данное приложение. Однако необходимость коллективной работы с одной и той же БД повлекло за собой перенос БД на сервер. Приложение, работающее с БД, располагалось также на сервере.

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

    Местоположение БД определяет так называемую архитектуру базы данных. Имеются четыре разновидности архитектур баз данных:

    Локальные базы данных;

    Архитектура "файл-сервер";

    Архитектура "клиент-сервер";

    Многозвенная архитектура.

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

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

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

    В ходе эксплуатации были выявлены общие недостатки файл-серверного подхода при обеспечении многопользовательского доступа к базе данных.
    Вся тяжесть вычислительной нагрузки при доступе к базе данных ложится на приложение клиента, что является следствием принципа обработки информации в системах "файл-сервер": при выдаче запроса на выборку информации из таблицы вся таблица базы данных копируется на клиентское место, и выборка осуществляется на клиентском месте. Локальные СУБД используют так называемый "навигационный подход", ориентированный на работу с отдельными записями.

    Не оптимально расходуются ресурсы клиентского компьютера и сети; например, если в результате запроса мы должны получить 2 записи из таблицы объемом 10000 записей, все 10000 записей будут скопированы с файл-сервера на клиентский компьютер; в результате возрастает сетевой трафик и увеличиваются требования к аппаратным мощностям пользовательского компьютера.
    В базе данных на файл-сервере гораздо проще вносить изменения в отдельные таблицы, минуя приложения, непосредственно из инструментальных средств (например, из утилиты database desktop фирмы borland для файлов paradox или dbase); подобная возможность облегчается тем обстоятельством, что, фактически, у локальных СУБД база данных – понятие более логическое, чем физическое, поскольку под базой данных понимается набор отдельных таблиц, сосуществующих в едином каталоге на диске. Все это позволяет говорить о низком уровне безопасности – как с точки зрения хищения и нанесения вреда, так и с точки зрения внесения ошибочных изменений.

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

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

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

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

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

    Функциями приложения-клиента являются:

    Посылка к серверу запросов;

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

    Реализация интерфейса пользователя.

    sql-сервер должен быть загружен на момент принятия запроса клиента. Функциями сервера БД являются:

    Прием запросов от приложений-клиентов, интерпретация запросов, выполнение запросов в БД, отправка результата выполнения запроса приложению-клиенту;

    Управление целостностью БД, обеспечение системы безопасности, блокировка неверных действий приложений-клиентов;

    Хранение бизнес-правил, часто используемых запросов в уже интерпретированном виде;

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

    В архитектуре "клиент-сервер" используются так называемые "удаленные" (или "промышленные") СУБД. Промышленными они называются из-за того, что именно СУБД этого класса могут обеспечить работу информационных систем масштаба среднего и крупного предприятия, организации, банка. Локальные СУБД предназначены для однопользовательской работы или для обеспечения работы информационных систем, рассчитанных на небольшие группы пользователей.
    К разряду промышленных СУБД принадлежат oracle, informix, sybase, ms sql server, db2, interbase и ряд других.

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

    Механизмы доступа

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

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

    В последнее время windows-версии клиентского программного обеспечения наиболее популярных серверных СУБД, в частности microsoft sql server, oracle, informix, содержат также СОМ-серверы, предоставляющие объекты для доступа к данным и метаданным.
    Использование клиентского api (или клиентских СОМ-объектов) является наиболее очевидным способом манипуляции данными в приложении. Однако в этом случае созданное приложение сможет использовать данные только СУБД этого производителя, и замена ее на другую повлечет за собой переписывание значительной части кода клиентского приложения – клиентские api и объектные модели не подчиняются никаким стандартам и различны для различных СУБД.

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

    Отметим, что достоинством универсальных механизмов является возможность применения одного и того же абстрактного api, а во многих случаях – СОМ-серверов, компонентов, классов для доступа к различным типам СУБД. Поэтому приложения, использующие универсальные механизмы доступа к данным, легко модифицировать, если необходима смена СУБД.
    Наиболее популярными среди универсальных механизмов доступа к данным можно назвать следующие:

    open database connectivity (odbc). ole db. activex data objects (ado). borland database engine (bde).

    Универсальные механизмы odbc, ole db и ado фирмы microsoft представляют собой по существу промышленные стандарты. Что касается механизма доступа к данным bde фирмы borland, то он так и не стал промышленным стандартом, однако до недавнего времени применялся довольно широко, поскольку до выхода delphi 5 был практически единственным универмальным механизмом доступа к данным, поддерживаемым средствами разработки borland на уровне компонентов и классов

    Что такое sql?

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

    SQL - Урок 1. Создание базы данных и таблиц

    Итак, вы установили MySQL, и мы начинаем осваивать язык SQL. В уроке 3 по основам баз данных , мы создали концептуальную модель маленькой БД для форума. Пришло время реализовать ее в СУБД MySQL.

    Для этого прежде всего надо запустить сервер MySQL. Идем в системное меню Пуск - Программы - MySQL - MySQL Server 5.1 - MySQL Command Line Client. Откроется окно, предлагающее ввести пароль.

    Нажимаем Enter на клавиатуре, если вы не указывали пароль при настройке сервера или указываем пароль, если вы его задавали. Ждем приглашения mysql>.

    Нам надо создать базу данных, которую мы назовем forum. Для этого в SQL существует оператор create database

    Create database имя_базы_данных;


    Максимальная длина имени БД составляет 64 знака и может включать буквы, цифры, символ "_" и символ "$". Имя может начинаться с цифры, но не должно полностью состоять из цифр. Любой запрос к БД заканчивается точкой с запятой (этот символ называется разделителем - delimiter). Получив запрос, сервер выполняет его и в случае успеха выдает сообщение "Query OK ..."

    Итак, создадим БД forum:

    Нажимаем Enter и видим ответ "Query OK ...", означающий, что БД была создана:

    Вот так все просто. Теперь в этой базе данных нам надо создать 3 таблицы: темы, пользователи и сообщения. Но перед тем, как это делать, нам надо указать серверу в какую именно БД мы создаем таблицы, т.е. надо выбрать БД для работы. Для этого используется оператор use . Синтаксис выбора БД для работы следующий:

    Use имя_базы_данных;


    Итак, выберем для работы нашу БД forum:

    Нажимаем Enter и видим ответ "Database changed" - база данных выбрана.

    Выбирать БД необходимо в каждом сеансе работы с MySQL.

    Для создания таблиц в SQL существует оператор create table . Создание базы данных имеет следующий синтаксис:

    Create table имя_таблицы (имя_первого_столбца тип, имя_второго_столбца тип, ..., имя_последнего_столбца тип);


    Требования к именам таблиц и столбцов такие же, как и для имен БД. К каждому столбцу привязан определенный тип данных, который ограничивает характер информации, которую можно хранить в столбце (например, предотвращает ввод букв в числовое поле). MySQL поддерживает несколько типов данных: числовые, строковые, календарные и специальный тип NULL, обозначающий отсутствие информации. Подробно о типах данных мы будем говорить в следующем уроке, а пока вернемся к нашим таблицам. В них у нас всего два типа данных - целочисленные значения (int) и строки (text). Итак, создадим первую таблицу - Темы:

    Нажимаем Enter - таблица создана:

    Итак, мы создали таблицу topics (темы) с тремя столбцами:
    id_topic int - id темы (целочисленное значение),
    topic_name text - имя темы (строка),
    id_author int - id автора (целочисленное значение).

    Аналогичным образом создадим оставшиеся две таблицы - users (пользователи) и posts (сообщения):

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

    show databases - показать все имеющиеся БД,

    show tables - показать список таблиц текущей БД (предварительно ее надо выбрать с помощью оператора use ),

    describe имя_таблицы - показать описание столбцов указанной таблицы.

    Давайте попробуем. Смотрим все имеющиеся базы данных (у вас она пока одна - forum, у меня 30, и все они перечислены в столбик):

    Теперь посмотрим список таблиц БД forum (для этого ее предварительно надо выбрать), не забываем после каждого запроса нажимать Enter:

    В ответе видим названия наших трех таблиц. Теперь посмотрим описание столбцов, например, таблицы topics:

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

    А сегодня мы рассмотрим последний оператор - drop , он позволяет удалять таблицы и БД. Например, давайте удалим таблицу topics. Так как мы два шага назад выбирали БД forum для работы, то сейчас ее выбирать не надо, можно просто написать:

    Drop table имя_таблицы;


    и нажать Enter.

    Теперь снова посмотрим список таблиц нашей БД:

    Наша таблица действительно удалена. Теперь давайте удалим и саму БД forum (удаляйте, не жалейте, ее все равно придется переделывать). Для этого напишем:

    Drop database имя_базы данных;


    и нажмем Enter.

    И убедитесь в этом, сделав запрос на все имеющиеся БД:

    У вас, наверно, нет ни одной БД, у меня их стало 29 вместо 30.

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

    © 2024 lidvalbecker.ru - Мой компьютер - Lidvalbecker