Базы данных
Обзор
Информация слева, информация справа, информация сверну и снизу, мы плаваем в море информации. Приход компьютерной эры не помог. В действительности, мы сейчас в состоянии записывать абсолютно гигантские объемы данных. Как результат информация перегружает как работников, так и менеджеров. Что-то необходимо для управления этой перегрузкой. Первая вещь в том, что информация должна быть организована и подана более эффективным образом, что бы извлечь ответ из моря данных. Одним из методов получения ответов являются генераторы отчетов (подобные RAVE) для организации и вывода ответов в форме, которая позволяет легче понимать читателю отчета. Но до того как, генератор сможет извлечь информацию, он должен побеспокоиться о структуре источника информации. Такой контейнер информации в простых терминах называется таблицей данных.
Данная глава предназначена тем, кто не фамильярен с базами данных или нуждается в быстром освежении знаний. Данная глава не рассчитана на глубокое изучение темы, так как имеется много лучших толстых книг по данной теме и множество формальных курсов.
Что такое база?
начнем с нескольких реальных примеров, описывающих концепцию таблицы данных. Например, библиотека содержит кучу информации на полках и полках шкафов с книгами, памфлетами, которая обычно упорядочивается по цифровой системе Деви (Dewey decimal system). Для поиска книги, каталог карточек используется для поиска по теме или автору, ничего с общего с цифровой системой Деви. Затем, когда нужная книга найдена и получена через стек, содержащий ее цифровой код.
Особенно гибко, если библиотека имеет компьютеризированный каталог. Теперь посмотрите на рисунок библиотеки без цифровой системы Деви, никакого порядка, хотя одинаковое самое количество книг. Попробуйте найти, что ни будь в такой библиотеке. Это потребует больших усилий и большого интервала времени.
Теперь, изменим слова. Сменим книги на информацию и библиотеку на базу данных, и мы на пути объяснения, что такое и зачем нужна система управления базами данных. Библиотека это коллекция знаний (книг) упорядоченная по цифровой системе Деви.
Таблица данных это коллекция информации, упорядоченная по какой то предопределенной структуре. Теперь мы проверим, что нам нужно для разработки и использования таблицы данных.
Терминология
Для лучшего понимания, что составляет базу, нам необходимо знать терминологию баз.
Система управления базой данных
Система управления базой данных (СУБД - DBMS) это законченная система для управления данными (информацией). Есть много примеров коммерческих компаний, которые известны своими СУБД. Некоторые их них особо известны, это Informix, Interbase, Microsoft Access, Microsoft SQL, Oracle, Sybase и многие другие. СУБД иногда путают с физическими данными (с файлами). Должны заметить, что таблица данных это только часть СУБД. Тем не менее, в реальной жизни требуется знать, как извлечь информацию из СУБД, это понять концепцию структуры. В действительности, большинство терминов общие для различных СУБД. Это не означает, что человек должен быть экспертом по полям базы, только понимание.
Таблица
Таблица ("Table") это коллекция вещей, аналогичным телефонной книге, содержащей номера, имена и адреса. Отчет ("report") в данном примере будет телефонной книгой, конечно, телефонная книга имеет ограничений, например не включает, не включает не опубликованные номера в любой печатной форме. В большинстве случае, телефонные компании имеют адреса для счетов, которые отличаются от адресов в телефонной книге.
Теперь посмотрим на телефонную книгу и заметим, что данные у нее упорядочены по строкам и колонкам. Строка (иногда называется записью) показывает значения, относящиеся к одному члену (персоне) этой таблицы. Каждая колонка содержит специфическую часть информации (иногда называется полем).. Как его имя или телефонный номер. Порядок в телефонной книге (таблице) сделан по индексу (иногда называется ключ). Телефонная книга может быть упорядочена по фамилии или по телефонному номеру.
Структура
Каждая часть информации насчет члена имеет атрибуты, которые определяются ее СУБД.
Типичные атрибуты для каждой таблицы (файла) включают:
• | дата создания таблицы |
• | дата последней модификации таблицы |
• | количество колонок определенных для таблицы |
Типичные атрибуты для каждой строки (записи) включают:
• | длину |
• | номер записи |
• | состояние (блокирована -удалена) |
Типичные атрибуты для каждой колонки (поля) включают:
• | имя – имя колонки, которое обычно описывает его содержимое |
• | тип – символьный, цифровой, дата, время, blob |
• | длина – максимальная длина данного элемента (может включать количество цифр после запятой) |
Таблица данных содержит информацию, упорядоченную по предопределенной структуре. Структура каждой таблицы важна, поскольку определения строк и колонок используется генератором отчетом для извлечения, упорядочивания и показа информации.
В примере с телефонной книгой, имеются следующие поля: имя, адрес и телефонный номер. Как определяются данные колонки (поля)? Они определяются по имени колонки; имя должно называться "name", адрес "address" и телефонный номер "phone". Но определения главных полей не заканчиваются таким простым определением. Например, "name" должен быть разделен на два и более полей, например, "first", "middle" и "last". Эти три куска главного поля, могут затем быть отработаны должным образом генератором. Все три субполя затем могут быть объединены в одно "full name" для вывода, поле "first" объединено с полем "last" для получения полной версии имени. Также, "phone" может называться "number" или "telephone" и телефонный номер может содержать только цифры без форматирующих символов. Rave делает задачу понимания структуры страницы относительно простой работой. Как только будет сделано подключение данных, Rave извлекает структуру таблицы, из которой колонки (поля) могут быть выбраны, как требуется.
Запрос
Редко, когда требуется печатать всю информацию из базы. Чаще, требуется уменьшить объем данных, выбором диапазона строк (записей) таблицы. Уменьшение данных важная часть обработки информации. Одним из методов уменьшения является запрос к таблице на показ только тех строк, которые нужны.
Один из общих метода запроса называется SQL, сокращение от Structured Query Language (язык структурных запросов). Некоторые таблицы данных совместимы с SQL. SQL запрос позволяет попросить у СУБД и СУБД производит поиск по своим таблицам в соответствии с заданным выражением и возвращает набор строк (записей), которые удовлетворяют запросу.
Клиент-сервер
Метод использования компьютерных программ используемых многими людьми, где база данных находится на центральном компьютере, доступным для всех (back end) и пользовательский интерфейс располагается на пользовательском компьютере (front end). Выбор специфических строк данных и обработка делаются на удаленном компьютере, а результат возвращается обратно, уменьшая передачу данных по сети. Происходит существенное улучшение общей системной производительности при передаче только нужных данных по кабелям. Хорошо сконфигурированная система клиент-сервер может дать превосходное улучшение в приложениях, используемых несколькими людьми.
Связанные таблицы
В данный момент пример с телефонной книгой это хороший пример простых плоских таблиц. Но это не эффективный дизайн для реальных потребностей. Мы посмотрим на телефонную компанию, вместо телефонной книги, для более типичных потребностей. Каждый месяц телефонная компания должна рассылать счета каждому своему клиенту. Этот счет хороший пример отношений "master-detail" типов отчета. Одна часть счета содержит базовую, статическую информацию о клиенте, как: его имя, адрес для отсылки счета и телефонный номер. Другая часть счета содержит детальную (переменную) информацию, такую как, строка для каждого телефонного вызова, включая продолжительность и цену. Переменная информация может быть только на одной странице или на нескольких, для некоторых клиентов.
Есть одна важная деталь для понимания работы master-detail, понимание концепции первичного ключа (ключ связи). Когда клиент получает телефонный счет, то клиент ожидает получить список только его переговоров; ему не нужны переговоры сделанные другими людьми. При создании счета клиенту, это означает, что должна быть только одна главная запись, называемая первичным ключом, для всех детальных строк. В счете клиента, первичным (link) ключом будет телефонный номер. Первичный ключ должен быть уникальным, что делает более сложным изменение первичного ключа после его присвоения. Но, некоторые СУБД позволяют иметь комбинацию колонок в качестве первичного ключа,.
Это краткий обзор работы баз данных. Для более эффективной разработки базы, управления структурой таблиц, есть еще несколько тем: "Клиент-сервер", "Нормализация", "Реляционные базы данных", "Отношение один к одному", " Отношение один ко многим" и " Отношение многие ко многим".
Отношение один к одному
Отношение один к одному есть разделение таблиц с тем же первичным ключом. Знание первичного ключа позволяет посмотреть данные для первой строки в одной таблице и второй строки в другой таблице. Отношение один к одному используется очень редко, поскольку обычно проще поместить колонки обеих таблиц в одну. Отношение один к одному не удовлетворяет первому уровню правил нормализации.
Отношение один ко многим
Это достигается помещением первичного ключа с одной стороны связи ONE, в другую колонку связи MANY. Например, если каждый работник может относиться только к одному подразделению, то Вы можете иметь колонку «department» (подразделение) в таблице «employee» (работники) для каждого работника, будет связано первичным ключом для строки его подразделения в таблице подразделения.
Многие ко многим
Это трудно объяснить, примеры реального мира очень сложные. Если есть несколько работников, которые являются частью нескольких, то это будет связь многие ко многим.
Представления
Некоторые СУБД имеют возможность представления пользователю информации полученной более чем из одной таблицы. Представление (view) это определение формы и оно не имеет собственных данных. Это часто включает запрос, который является субъектом команды. Используйте представления для управления доступом к индивидуальным колонкам таблицы или для представления нескольких таблиц как одной.
Отчеты
Как это все относится к разработке отчетов? Со сделанным объяснением, понимание структуры разработки отчета и его параметров становится проще. Теперь вы подготовлены к чтению главы «Подключения данных» и свойства DataField, которая расскажет, как использовать Rave для подключения ваших таблиц данных и как идентифицировать содержимое конкретных колонок (полей) в дизайнере Rave.