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

Понятие запроса к базе данных. Открытие, изменение, сортировка, фильтрация, сохранение, редактирование запроса. Методы упорядочивания, поиска и отбора данных. Типы ключей: потенциальный (простой, составной, первичный) и внешний. Индексирование баз данных.

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

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

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

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

Введение

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

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

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

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

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

Функции СУБД :

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

2. Обработка данных. Позволяет применить различные способы: выборка, фильтрация, сортировка, объединение

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

сортировка фильтрация редактирование запрос

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

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

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

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

Индексом (index) называется файл содержащий только ключи. Его так же называют ключевым файлом (keyfile).

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

Модели баз данных

Модель данных (datamodel) (или модель БД (databasemodel)) является абстрактным представлением связи между записями. Реляционная модель БД обеспечивает связь между записями через использование общих полей.

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

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

Достоинства реляционной модели данных:

1. Простота (запросы в терминах информационного содержания),

2. Независимость данных,

3. Теоретическое обоснование (строится на хорошо проработанной теории отношений).

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

5. Легко производить изменения.

6. Связывание данных осуществляется автоматически.

7. Удается избежать установления ошибочных связей.

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

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

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

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

Понятие запроса к базе данных

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

Для решения таких задач предназначены запросы.

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

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

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

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

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

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

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

Запросы-выборки осуществляют выборку данных из таблиц в соответствии с заданными условиями. К этой группе запросов относятся следующие.

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

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

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

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

· Запрос с критерием поиска -- позволяет производить отбор записей в соответствии с заданным критерием поиска.

· Запрос с итогами -- производит математические вычисления и выдает результат.

Основные типы запросов (выборка, удаление, добавление, обновление, просмотр)

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

Виды запросов:

· на выборку (выбирает данные из взаимосвязанных таблиц и других запросов. Результатом его является таблица, которая существует до закрытия запроса. На основе этого вида запроса могут строиться запросы других видов.)

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

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

· на удалениеЗапрос на удаление удаляет группу записей из одной или нескольких таблиц. Например, запрос на удаление позволяет удалить записи о товарах, поставки которых прекращены или на которые нет заказов. Или записи всех студентов, не сдавших сессию. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.(являются запросами действия, в результате выполнения которых изменяются данные в таблицах)

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

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

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

· Обновление записей в запросе на выборку в режиме таблицы (с некоторыми ограничениями).

· Расчет сумм, средних значений, количества записей и других итоговых значений.

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

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

Для подготовки запросов с помощью различных СУБД, как правило, используются два основных языка описания запросов:

· язык QBE (QueryByExample) -- язык запросов по образцу;

· SQL (StructuredQueryLanguage) -- структурированный язык запросов.

По возможностям манипулирования данными при описании запросов указанные языки практически эквивалентны. Главное отличие между ними, по-видимому, заключается в способе формирования запросов: язык ОБЕ предполагает ручное или визуальное формирование запроса, в то время как использование SQL означает программирование запроса.

Запросы по образцу (QBE)

QBE - запрос по образцу - средство для отыскания необходимой информации в базе данных. Он формируется не на специальном языке, а путем заполнения бланка запроса в окне Конструктора запросов. При создании query необходимо определить:

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

· Предмет поиска в базе данных

· Перечень полей в результате выполнения запроса

Характеристика языка QBE

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

Язык QBE позволяет создавать однотабличные и многотабличные (которые выбирают или обрабатывают данные из более, чем одной связанных таблиц) запросы. Запросы на языке QBE позволяют выполнять основные операции: выборки данных; вычисления над данными; вставки новых записей; удаления записей; изменения данных. В результате выполнения запроса создается новая таблица, которая называется ответной, или обновленная исходная таблица. Все операции, кроме вычислений, можно производить безусловно или по условиям, которые задаются логическими выражениями. Вычисления над данными выполняются с помощью арифметических выражений и создают в ответных таблицах новые поля, которые называют вычисляемыми. Запросная форма представляется в виде таблицы с именем и названиями полей, которые совпадают соответственно с именем и названиями полей использующейся исходной таблицы. Современные СУБД (например, VisualFoxPro, Access) многие действия по созданию запросов на языке QBE позволяют выполнять визуально с помощью мыши. Приложение 1.

Понятие о языке SQL

SQL- StructuredQueryLanguage, или язык структурированных запросов это специализированный непроцедурный язык, позволяющий

- определять тип данных,

- предоставлять к ним доступ и

- обрабатывать их за достаточно короткие промежутки времени.

Специализированность означает, что SQL предназначен лишь для работы с БД; нельзя создать полноценную прикладную систему только средствами этого языка -- для этого потребуется использовать другие языки, в которые можно встраивать SQL -команды.

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

Наиболее существенным свойством SQL является возможность доступа к реляционным БД.

Реляционная СУБД - СУБД, управляющая реляционными базами данных.

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

1. каждый элемент таблицы - один элемент данных.

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

3. каждый столбец имеет уникальное имя

4. одинаковые строки в таблице отсутствуют

5. порядок следования строк и столбцов может быть произвольным

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

Типы запросов данных

Есть четыре основных типа запросов данных в SQL, которые относятся к так называемому языку манипулирования данными (Data Manipulation Language или DML):

· SELECT - выбрать строки из таблиц;

· INSERT - добавить строки в таблицу;

· UPDATE - изменить строки в таблице;

· DELETE - удалить строки в таблице;

Какие процедуры можно совершать с помощью этого языка?

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

· создавать самые разнообразные таблицы;

· получать, хранить и изменять полученные данные;

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

· объединять полученную информацию в единые блоки;

· вычислять полученные данные;

· обеспечивать полную защиту информации.

Открытие, изменение, сохранение, редактирование запроса

Статический и динамический sql

SQL-запрос является статическим, если он встраивается в программы на Си или Коболе (для таких выражений существует название - встроенный SQL ).

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

Создавать новые базы, таблицы и другие запросы в SQL можно двумя способами:

- Операторами SQL через консоль СУБД

- Используя интерактивные средства администрирования, входящие в состав сервера баз данных.

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

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

Внимание! SQL-запрос всегда завершается точкой с запятой.

Какие команды являются самыми популярными в данном языке?

Самыми распространенными на сегодняшний день являются такие:

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

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

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

Любой запрос SQL имеет в своём составе одну команду. Структура этой команды обманчиво проста, потому что её можно расширять так, чтобы выполнить сложные оценки и обработку данных. Эта команда называется SELECT (ВЫБРАТЬ).

SQL-запрос - это запрос на получение (выборку) информации из базы данных.Строятся такие запросы по определенным правилам с определенным синтаксисом (Приложение 2, Приложение 3, Приложение 4).

Вот пример запроса:

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

SELECT * FROM T WHERE C1 = 1 ORDER BY C2;

Этот запрос можно перевести так: выберите (SELECT) все записи (*)

из таблицы T (FROM T) удовлетворяющие условию (WHERE)

параметр С1 содержит значение 1 (С1 = 1)

и отсортируйте полученные данные по полю С2 (ORDER BY C2).

Для сохранения SQL- запроса в файл применяется оператор SELECT с добавлением двух ключевых слов intooutfile.

select name_tables into outfile from name_table

Методы упорядочивания, поиска и отбора данных

Предположим у нас есть таблица, которая хранит информацию об имеющихся книгах и их атрибутах

Запрос, позволяющий отобразить всю таблицу (она называется Books) целиком, выглядит таким образом:

Select * FromBooks

Здесь: Select - оператор выборки данных; * - указывает, что должны выбираться все столбцы в том же порядке, как они определены в базе данных; ключевое слово Fromуказывает откуда должны выбираться данные (имя таблицы).

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

Select Name, Author, Press, Pages

From Books

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

Пользователь также имеет возможность форматировать вывод результата запроса на экран. Например, результат запроса

Select 'Book = ', Name, 'Press = ', Press

From Books дает следующие результаты

Expr1000

Name

Expr1002

Press

Book=

SQL

Press=

BHV

Book=

3D Studio Max 3

Press=

Питер

Book=

100 компонентов общего назначения

Press=

Бином

У текстовых столбцов не очень понятное название.

Чтобы этого избежать, можно дать этим столбцам псевдонимы.

Select 'Book = ' asBookName, Name, 'Press = 'asPressName, Press

From Books

BookName

Name

PressName

Press

Book=

SQL

Press=

BHV

Book=

3D Studio Max 3

Press=

Питер

Book=

100 компонентов общего назначения

Press=

Бином

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

Select Author From Books

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

Select Distinct Author From Books

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

Для установки условия используется ключевое слово Where и набор логических операторов:

§ > - больше

§ >= - больше либо равно

§ < - меньше

§ <= - меньше либо равно

§ = - равно

§ <> - не равно (в некоторых базах используется знак !=)

§ and - логическое "И" (умножение)

§ or - логическое "или" (сложение)

§ not - логическое "не" (отрицание)

§ between - принадлежность диапазону

§ in - проверка на членство в множестве

§ like - проверка на соответствие шаблону

§ isnull - проверка на равенство значению NULL

Под значением NULL понимают неопределенное значение. Результатом логического выражения в SQL может быть либо истина, либо ложь, либо NULL (когда любая из частей выражения равна NULL). Строка будет включаться в результирующий набор только в том случае, если результат проверки условий отбора равен истине.

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

Итог:

Запрос на выборку данных подчиняется строгой структуре:

1. Сначала указывается что выбрать и как отобразить (Select)

2. Затем откуда выбрать (From)

3. Как выбрать (Where)

4. Как сортировать (OrderBy)

Сортировка и фильтрация

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

SELECT id, name FROM month

Кроме того, во многих случаях мы хотим, чтобы полученные результаты были отсортированы в определенном порядке. В SQL мы делаем это с помощью ORDER BY. Он может принимать опциональный модификатор - ASC (по-умолчанию) сортирующий по возрастанию или DESC, сортирующий по убыванию:

SELECT id, name FROM month ORDER BY name DESC

При использовании ORDER BY убедитесь, что оно будет последним в инструкции SELECT. В противном случае будет выдано сообщение об ошибке.

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

В этом запросе мы выбираем только те месяцы из таблицы month, в которых больше 30 дней с помощью оператора больше (>).

SELECT id, name FROM month WHERE days > 30

Для более сложной фильтрации данных можно использовать операторы AND и OR и операторов сравнения (=,<,>,<=,>=,<>).

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

SELECT *

FROM albums

WHERE genre = 'рок' AND sales_in_millions<= 50

ORDERBYreleased

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

· IN - служит для указания диапазона условий, любое из которых может быть выполнено

· BETWEEN - проверяет, находится ли значение в указанном диапазоне

· LIKE - ищет по определенным паттернам

Например, если мы хотим выбрать альбомы с поп и соул музыкой, мы можем использовать IN("value1","value2").

SELECT * FROM albums WHERE genre IN ('pop','soul');

Если мы хотим получить все альбомы, изданные между 1975 и 1985годами, мы должны записать:

SELECT * FROM albums WHERE released BETWEEN 1975 AND 1985;

Установление критериев отбора

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

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

Именно это и была основная задумка при создании языка запросов для БД.

Таблицу для примеров используем ту же, что и в предыдущей главе:

Num (номер товара)

Title (название)

Price (цена)

1

Чайник

300

2

Чашка

100

3

Ложка

25

4

Тарелка

100

Пример. Чтобы выбрать товыры стоимостью 100 рублей, нужно задать условие:

SELECT * FROM goods WHERE price = 100

Здесь, раздел SELECT и FROM указывают, какие столбцы из каких таблиц выводить.

WHERE - команда указывающая, что задается условие выбора.

price = 100 - критерий выбора строк.

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

num

title

price

2

Чашка

100

4

Тарелка

100

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

SELECT * FROM goods WHERE num < 3

Ценатовараот 100 рублей:

SELECT * FROM goods WHERE price >= 100

Есть еще другие операции для построения условий. Но об этом позже.

Стоит так же отметить возможность задавать несколько условий. Например, нужно выбрать все товары с номером больше 2 и ценой меньше 100:

SELECT * FROM goods WHERE num > 2 AND price < 100

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

num

title

price

3

Ложка

25

Кроме, логического оператора И (AND), существуют еще ИЛИ (OR) и НЕ (NOT). OR указывает, что должно быть верно или первое условие или второе.

SELECT * FROM goods WHERE num > 2 OR price > 100

Под такие условия попадает следующие строки:

num

title

price

1

Чайник

300

3

Ложка

25

4

Тарелка

100

Товар под номером 1 удовлетворяет условию price> 100, товары номер 3 и 4 - условию num> 2. В таком случае, если хотя бы одно из условий верно, строка таблицы будет включена в результат запроса.

Оператор NOT добавляет отрицание в условие:

SELECT * FROM goods WHERE NOT num > 2

Такое условие означает, что нужно выбрать строки, где условие не верно.

num

title

price

1

Чайник

300

2

Чашка

100

NOT в отличие от AND и OR, располагается не между двух других условий, а является отрицанием того условия, перед которым он установлен.

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

Индексирование баз данных

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

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

При создании индекса для таблицы базы данных пользователем указывается поле таблицы, для которого требуется индексация. Во многих СУБД ключевые поля таблицы обычно индексируются автоматически. Индексы, которые создаются пользователем для неключевых полей, называются вторичными (или пользовательскими) индексами. Индексные файлы, которые создаются для поддержания вторичных индексов, называют файлами вторичных индексов.Табличный индекс можно создать либо с помощью оператора creat index (создание индекса), либо указав ограничение целостности в виде уникального (unique) илиглавного (primary) ключа в операторе создания таблицы creat table. Однако, второй способ имеет следующие ограничения:

Не позволяет создавать индексы по неуникальным полям;

Не позволяет воспользоваться опциями, предусмотренными в команде creat index, уточняющими способ использования индекса;

Эти индексы можно удалить только вместе с ключами оператором alter table.

Индексы связываются со столбцом таблицы с целью ускорения выборки данных. Простешая форма команды create index (создание индекса) имеет следующий вид:

create index название_индекса

on название_таблицы (название_столбца)

Для создания индексов можно использовать:

1. Создает индекс в таблице. Допускаются повторяющиеся значения:

CREATEINDEXindex_nameONtable_name (column_name)

2. Создает уникальный индекс в таблице. Дублирующие значения не допускаются:

CREATE UNIQUE INDEX index_name ON table_name (column_name)

Полный синтаксис команды создания индексов createindex имеет следующий вид:

create [unique] [clustered | nonclustered] index название_индекса

on [[база_данных.]владелец.]название_таблицы (название_столбца

[,название_столбца]...)

[with {{fillfactor | max_rows_per_page}= x,

ignore_dup_key, sorted_data,

[ignore_dup_row | allow_dup_row]}]

[on название_сегмента]

Типы ключей: потенциальный (простой, составной, первичный) и внешний

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

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

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

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

· Неизбыточностью.Нельзя убрать один изстолбцом из ключа, так, чтобы он не потерял уникальности.

Рассмотрим, например, такую таблицу:

№ паспорта

Фамилия

Имя

Отчество

Должность

123456

Иванов

Иван

Иванович

Директор

234567

Петров

Петр

Иванович

Его зам

345678

Сидорова

Мария

Ивановна

Секретарша

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

Первичные ключи. Первичный ключ - это один из потенциальных ключей.

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

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

Primary key (PK) очень важен для каждой таблицы:

Primary key не позволяет создавать одинаковых записей в таблице;

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

Ключ внешний

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

Имеем две таблицы:

Код работника

Вид движения

Сумма

1

Оклад

100

1

Премия

30

1

Налоги

-25

2

Оклад

90

...

...

...

Код работника

Фамилия

Имя

Отчество

1

Иванов

Иван

Иванович

2

Петров

Петр

Иванович

3

Сидорова

Мария

Ивановна

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

Foreign key, кратко FK. Обеспечивает однозначную логическую связь, между таблицами одной БД.

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

CREATE TABLE CLIENT (

ClientName

CHARACTER (30),

PRIMARY KEY,

Address1

CHARACTER (30),

Address2

CHARACTER (30),

City

CHARACTER (25),

PRIMARY KEY,

State

CHARACTER (2),

PostalCode

CHARACTER (10),

Phone

CHARACTER (13),

Fax

CHARACTER (13),

ContactPerson

CHARACTER (30));

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

ALTER TABLE CREATE TABLE CLIENT ADD UNIQUE KEY (ClientName , City );

или с указанием названия ограничения так:

ALTER TABLE CREATE TABLE CLIENT ADD UNIQUE KEY (ClientName , City );

UNIQUE (ClientName ,City);

Обеспечение целостности данных

Главная особенность SQL-технологий наличие у сервера СУБД специальных средств контроля целостности данных, не зависящих от клиентских программ и привязанных непосредственно к таблицам. Т.е. принципиально не важно, каким образом осуществляется доступ к базе данных: через SQL-консоль, через ODBC-драйвера из приложения Windows, через WWW-connector из Internet-браузера или через DBI-интерфейс Perl. В любом из этих случаев, за контролем целостности данных следит сервер, и при нарушении правил целостности данных сервер известит клиента об ошибке.

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

SQL-серверы, как правило, поддерживают следующие ограничители.

NOT NULL - проверка на непустое значение. NULL - специальное понятие в СУБД, которое означает "пусто". "Пусто" и "0(ноль)" не равны друг другу!

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

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

SQL-технология позволяет на уровне столбца задавать домены значений, т.е. строго определенные наборы или диапазоны значений, для помещаемых в столбец данных. В частности можно реализовывать ограничения ссылочной целостности (referentialintegrityconstraint) и проверки фиксированного условия. Ограничение ссылочной целостности не позволяет значениям из столбца одной таблицы принимать значения кроме как из присутствующих в столбце другой таблицы. Это делается при помощи ограничителей FOREIGN KEY (внешний ключ) и REFERENCES (указатель ссылки). Таблица, содержащая FOREIGN KEY, считается родительской таблицей. Таблица, содержащая REFERENCES, считается дочерней таблицей. Внешний ключ и указатель ссылки могут находиться в одной таблице, т.е. родительская таблица одновременно является дочерней.

FOREIGN KEY - внешний ключ. Назначает столбец или комбинацию столбцов в текущей (родительской) таблице в качестве внешнего ключа для ссылки из других таблиц.

REFERENCES - указатель ссылки (или родительский ключ). Указывает на столбец (комбинацию столбцов) в родительской таблице, ограничивающую значения в текущей (дочерней) таблице.

Триггеры - это сохраненная откомпилированная процедура, которая связана с определенной таблицей. Триггеры, в отличие от ограничителей, могут выполнять сколь угодно сложные манипуляции над данными. Помимо операций модификации и вставки, триггеры могут срабатывать и при удалении данных из таблицы. Можно также задавать порядок срабатывания триггера относительно операции, т.е. выполниться ли триггер перед операцией вставки/модификации/удаления значения из столбца (или всей строки) или непосредственно после такой операции.В случае необходимости триггеры можно запрещать, а затем разрешать. Запрещение триггеров применяется обычно при массовых загрузках данных в таблицы извне, с целью уменьшения времени загрузки. Понятие триггера как выполнение кода по событию в том же Oracle используется весьма широко. В частности, оно является основным при разработке клиентских программ при помощи SQL*Forms. Триггеры пишутся на процедурных расширениях SQL.

Каскадное удаление - обновление

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

Чтобы избежать такой проблемы и не писать лишние SQL запросы, операция каскадного удаления данных реализуется при помощи ключевой фразы ON DELETE CASCADE. Фраза ON DELETE CASCADE говорит о том, что сперва нужно удалить данные из справочника, а затем данные нужно удалять из таблицы, которая ссылается на этот справочник. Чтобы реализовать каскадное удаление данных из таблицы базы данных, нужно записать правило ON DELETE сразу после FOREIGN KEY, тогда при удалении данных из справочника удалятся и данные из связанных таблиц.

Заключение

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

Основные достоинства языка SQL заключаются в следующем:

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

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

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

· реляционная основа языка - SQL является языком реляционных БД, поэтому он стал популярным тогда, когда получила широкое распространение реляционная модель представления данных. Табличная структура реляционной БД хорошо понятна, а потому язык SQL прост для изучения;

· возможность создания интерактивных запросов - SQL обеспечивает пользователям немедленный доступ к данным, при этом в интерактивном режиме можно получить результат запроса за очень короткое время без написания сложной программы;

· возможность программного доступа к БД - язык SQL легко использовать в приложениях, которым необходимо обращаться к базам данных. Одни и те же операторы SQL употребляются как для интерактивного, так и программного доступа, поэтому части программ, содержащие обращение к БД, можно вначале проверить в интерактивном режиме, а затем встраивать в программу;

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

· возможность динамического изменения и расширения структуры БД - язык SQL позволяет манипулировать структурой БД, тем самым обеспечивая гибкость с точки зрения приспособленности БД к изменяющимся требованиям предметной области;

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

Список использованных источников

1. Б.В. Соболь и др. Информатика Феникс 2010

2. С.В. Симонович Информатика. Питер 2009

3. Н.В. Макарова, В.Б. Волков Информатика. Питер 2011

4. В.Л.Бройдо Архитектура ЭВМ и систем. Питер 2009

5. А.В.Гордеев Операционные системы Питер 2009

6. А.Б. Суворов Телекоммуникационные системы, компьютерные сети и Интернет Феникс 2009

7. Соболь Б.В. и др. Практикум по информатике. Ростов н/Д, Феникс, 2009г

8. Н. Угринович. Информатика и информационные технологии -- М., БИНОМ, 2003г.

9. Компьютерные сети. Учебный курс/Пер. с англ. - М.: Изд. отдел "Русская редакция" ТОО "ChannelTradingLtd". - 1997. - 696 с.: ил.

10. Компьютерные сети +. Учебный курс: официальное пособие MS для самостоятельной подготовки/ Пер. с англ. - М.: Издательско-торговый дом "Русская редакция". - 2000. - 552 с.: ил.

11. Таненбаум Э. Компьютерные сети. - СПб.: Питер. - 2002. - 848 с.: ил.

12. Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы. Учебник. - СПб.: Питер. - 2001. - 672 с.

13. А.В. Кузин С.В. Левонисова БАЗЫ ДАННЫХ Высшее профессиональное образование Учебное пособие Москва Издательский центр «Академия.2012

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

...

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

  • Структура многотабличных баз данных, создание и редактирование таблиц в MS Access, установка связей между таблицами, фильтрация и сортировка данных, создание БД "Месторождения нефти". Составление форм, запроса на выборку по разным полям и отчетов.

    лабораторная работа [531,5 K], добавлен 13.02.2012

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

    контрольная работа [25,6 K], добавлен 26.02.2009

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

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

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

    лабораторная работа [5,9 M], добавлен 13.01.2010

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

    учебное пособие [3,6 M], добавлен 19.12.2009

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

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

  • Одномерные и многомерные массивы, их инициализация. Создание новой базы данных "Пицца". Сортировка записей по стоимости заказа. Сохранение БД во внешний файл. Загрузка данных для принятия их к учету из файла. Редактирование записей в базе данных.

    контрольная работа [1,2 M], добавлен 20.09.2012

  • Возможности системы управления базами данных Access. Структура простейшей базы данных: свойства ее полей, типы данных, безопасность и режим работы. Определение связей между таблицами в базе данных. Использование запроса на выборку, макроса и отчетов.

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

  • Создание баз данных с помощью Transact-SQL. Специализированные типы данных. Обеспечение целостности ссылок. Преимущества хранимых процедур. Синтаксис запроса на создания триггера. Фиксированные серверные роли. Предоставление прав на объекты в базе данных.

    лабораторная работа [2,2 M], добавлен 12.09.2012

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

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

  • Порядок создания таблицы; схемы данных; фильтров; запроса "Группы ЭФ", содержащего список учебных групп и перекрестного запроса "Оценки студентов из одной комнаты"; составной формы "Оценки жильцов комнаты". Построение отчета "Итоги сессии в группе 9701".

    контрольная работа [2,2 M], добавлен 30.09.2013

  • Установление связи между таблицами. Создание запроса с параметром для отбора пациентов с определенным видом заболевания. Создание формы для ввода данных, отчетов и главной кнопочной формы. Ход разработки базы данных. Изменение и обновление записей.

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

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

    презентация [1,2 M], добавлен 01.12.2015

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

    реферат [6,6 K], добавлен 17.11.2002

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

    лабораторная работа [787,7 K], добавлен 22.11.2014

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

    презентация [11,7 K], добавлен 14.10.2013

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

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

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

    курсовая работа [166,6 K], добавлен 18.07.2012

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

    лабораторная работа [1,6 M], добавлен 17.02.2013

  • Индексирование в базах данных. Создание индекса, его типы, виды и структура. Индексы для последовательных файлов. Неупорядоченные и упорядоченные файлы. Типы хеширования, древовидные структуры для многомерных данных. Деревья квадрантов и их вершины.

    реферат [2,6 M], добавлен 19.06.2015

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