Технология баз данных

Требования к базам данных, этапы проектирования: определение информационных потребностей, сущности и предметной области; виды связей, применение правил нормализации. Реляционная БД; назначение языка SQL и реализация его в Delphi; соединение с сервером.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 08.02.2012
Размер файла 22,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

1. Технология баз данных

1.1 Требования к базам данных

Итак, хорошо спроектированная база данных:

*Удовлетворяет всем требованиям пользователей к содержимому базы данных. Перед проектированием базы необходимо провести обширные исследования требований пользователей к функционированию базы данных.

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

Обеспечивает естественное, легкое для восприятия структурирование информации. Качественное построение базы позволяет делать запросы к базе более "прозрачными" и легкими для понимания; следовательно, снижается вероятность внесения некорректных данных и улучшается качество сопровождения базы.

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

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

· Определить информационные потребности базы данных.

· Проанализировать объекты реального мира, которые необходимо смоделировать в базе данных. Сформировать из этих объектов сущности и характеристики этих сущностей (например, для сущности "деталь" характеристиками могут быть "название", "цвет", "вес" и т.п.) и сформировать их список.

· Поставить в соответствие сущностям и характеристикам - таблицы и столбцы (поля) в нотации выбранной Вами СУБД (Paradox, dBase, FoxPro,Access, Clipper, Inter Base, Sybase, Informix, Oracle и т.д.).

· Определить атрибуты, которые уникальным образом идентифицируют каждый объект.

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

· Установить связи между объектами (таблицами и столбцами), провести нормализацию таблиц.

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

1.2 Шаги проектирования базы данных

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

· сможет ли новая система объединить существующие приложения или их необходимо будет кардинально переделывать для совместной работы с новой системой;

· какие данные используются разными приложениями; смогут ли Ваши приложения совместно использовать какие-либо из этих данных;

· кто будет вводить данные в базу, и в какой форме; как часто будут изменяться данные;

· достаточно ли будет для Вашей предметной области одной базы или потребуется несколько баз данных с различными структурами;

· какая информация является наиболее чувствительной к скорости ее течения и изменения.

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

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

· идентификацию функциональной деятельности Вашей предметной области;

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

· идентификацию характеристик этих сущностей;

· идентификацию взаимосвязей между сущностями.

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

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

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

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

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

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

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

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

· данные легко обновлять или удалять;

· исключается возможность рассогласования копий данных;

· уменьшается возможность введения некорректных данных.

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

распределенная база данных;

централизованная база данных;

файл-сервер;

клиент-сервер.

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

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

иерархическая модель данных;

сетевая модель данных;

реляционная модель данных.

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

база данный сущность язык

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

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

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

· каждая таблица имеет уникальное в базе данных имя и состоит из однотипных строк;

· каждая таблица состоит из фиксированного числа колонок и значений;

· В одной колонке строки не может быть сохранено более одного значения;

· ни в какой момент времени в таблице не найдется двух строк, дублирующих друг друга;

· Строки должны отличаться хотя бы одним значением, чтобы у нас была возможность однозначно идентифицировать любую строку таблицы;

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

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

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

Значения, хранимые в таблице, не накладывают никаких ограничений на порядок обращения к данным.

Система управления базами данных реализована в SQL сервере MSSQL.

1.4 Основы SQL

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

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

Во-вторых, в языке SQL реализована трехзначная логика, то есть помимо значений True и False логические переменные могут принимать значение unknown, которое соответствует пустой ячейке таблицы или значению Null.

В-третьих, SQL -- это непроцедурный язык. Запрос определяет, что нужно сделать с данными и передается для выполнения СУБД, он не является последовательностью инструкций.

Все операторы языка разбиты на три основные категории:

Операторы контроля данных (Data Control Statements) используются для проверки полномочий пользователя, обращающегося к базе данных. Это операторы grant и revoke.

Язык определения данных (Data Definition Language - DDL) содержит операторы для создания объектов БД и определения их структуры. К ним относятся операторы create schema, create table, create view, create DOMAIN.

Язык управления данными (Data Manipulation Language - DML) объединяет операторы поиска, удаления, изменения и сохранения данных. Сюда входят операторы select, update, insert, delete. Важнейшим из них (вероятно, и во всем языке SQL) является оператор select.Реализация SQL в Delphi

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

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

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

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

Архитектура клиент/сервер предъявляет очень высокие требования к серверной части, которая строится на основе специальных программных комплексов, которые так и называются серверами БД или серверами SQL, так как при работе с ними используется специальный язык запросов к базам данных SQL (Structured Query Language).

SQL- это легкий для понимания язык и в то же время универсальное программное средство управления данными.

Успех языку SQL принесли следующие его особенности:

Независимость от конкретных СУБД;

Переносимость с одной вычислительной системы на другую;

Наличие стандартов;

Одобрение компанией IBM (СУБД DB2);

Поддержка со стороны компании Microsoft (протокол ODBC);

Реляционная основа;

Высокоуровневая структура, напоминающая английский язык;

Возможность выполнения специальных интерактивных запросов;

Обеспечение программного доступа к базам данных;

Возможность различного представления данных;

Полноценность как языка, предназначенного для работы с базами данных;

Возможность динамического определения данных;

Поддержка архитектуры клиент/сервер.

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

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

SQL используется для изменения базы данных. Оператор INSERT добавляет новые данные, оператор DELETE удаляет данные, а оператор UPDATE обновляет существующие данные.

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

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

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

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

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

1.5 Соединение с сервером

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

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

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

позволяет управлять транзакциями проще, чем при помощи операторов SQL;

обеспечивает регистрацию пользователя на сервере.

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

Для определения базы данных (сервера), с которой приложение устанавливает соединение при помощи компонента TData base, чаще используется СВОЙСТВО Alias Name. Свойства Database Name и Driver Name предоставляют альтернативный способ создания соединения. Если соединение задано свойством Alias Name, то свойство Database Name можно использовать для создания временного псевдонима, который будет доступен только для компонентов доступа к данным внутри приложения. При щелчке на кнопке списка доступных псевдонимов свойства Database Name в Инспекторе объектов для любого компонента доступа к данным, в списке будет доступен и временный псевдоним компонента TData base.

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

Если наборы данных приложения подключены к базе данных через компонент TData base, то перед их открытием необходимо установить соединение с БД. Соединение с БД устанавливается при помощи метода open. Если попытаться активизировать набор данных без этого, то соединение будет установлено автоматически. Аналогичная картина возникает при закрытии наборов данных и отключении от БД.

При подключении к базе данных довольно часто требуется задать значения для параметров драйвера BDE. Для этого используется свойство params, представляющее собой обычный список. В нем необходимо задавать названия изменяемых параметров и их новые значения:

USERNAME=SYSDBA PASSWORD=masterkey

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

1.6 Как работает запрос

Теперь настало время разобраться с основными принципами работы запросов в приложениях баз данных Delphi. Главную роль в подготовке и диспетчеризации запросов SQL играет BDE. Непосредственную обработку запросов выполняет специальный элемент архитектуры процессора БД - система обработки запросов, которая идентифицирует набор данных запроса, выполняет проверку синтаксиса и, в зависимости от установленных значений параметров BDE, передает локальный вариант запроса стандартному драйверу соответствующей БД или адресует запрос серверу БД через систему драйверов SQL Links.

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

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

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

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

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

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

Размещено на Allbest.ru


Подобные документы

  • Понятие нормализации таблиц базы данных и ее цели. Этапы процесса нормализации. Пример ненормализованных данных. Нормальные формы, к которым приводятся таблицы. Реляционная алгебра над учебной базой. База данных для предметной области "Учебные пособия".

    контрольная работа [216,1 K], добавлен 30.07.2010

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

    презентация [971,8 K], добавлен 09.10.2013

  • Понятие баз данных и принципы проектирования информационных систем. Разработка программы для отслеживания финансовой стороны работы компании в среде Delphi 7. Создание таблиц и схемы данных. Разработка клиентского приложения и процедуры добавления данных.

    курсовая работа [1,4 M], добавлен 25.04.2012

  • Создание структуры базы данных на примере "Школьного журнала" с использованием метода и принципа нормализации. Понятия базы данных, архитектуры БД и проектирования. Описание предметной области; приложения для работы с базой данных TTable и TQuery.

    дипломная работа [996,4 K], добавлен 01.04.2012

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

    курсовая работа [2,2 M], добавлен 06.02.2010

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

    курсовая работа [642,7 K], добавлен 06.02.2014

  • Основные концепции реляционных баз данных. Проектирование и требования к базам данных в среде Delphi, их виды. Объектная ориентация языка, формы, модули и метод разработки. Базовый подход к конструированию и условия рабочего места и зоны оператора.

    дипломная работа [260,1 K], добавлен 12.06.2009

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

    курсовая работа [67,9 K], добавлен 27.02.2009

  • Анализ предметной области "Ремонт часов", с использованием СУБД MySQL, языка HTML, технологии PHP и ADO и выбора скриптовых языков VBScript или JavaScript. Нормализация базы данных. Пошаговое описание нормализации базы данных (методом ER-диаграмм).

    курсовая работа [782,4 K], добавлен 18.06.2010

  • Этап концептуального проектирования базы данных: описание и характеристика предметной области, ограничения и допуения, модель "сущность-связь" (ER-диаграмма). Выбор модели данных. Требования к интерфейсу пользователя, создание запросов в среде Delphi.

    курсовая работа [2,2 M], добавлен 25.05.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.