Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к зачету.doc
Скачиваний:
37
Добавлен:
16.04.2019
Размер:
906.75 Кб
Скачать

7. Реляционная база данных и основные её понятия.

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

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

- Данные хранятся в таблицах, состоящих из столбцов ("атрибутов") и строк ("записей", "кортежей" );

- На пересечении каждого столбца и строчки стоит в точности одно значение;

- У каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип.

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

Строки в реляционной базе данных неупорядочены - упорядочивание производится в момент формирования ответа на запрос. Общепринятым стандартом языка работы с реляционными базами данных является язык SQL.

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

Свойства строк и столбцов в РБД:

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

- столбцы упорядочиваются слева направо (для пользователя удобней)

- строки таблицы неупорядочены, их последовательность определяется лишь посл-ю ввода таблицы

- свойство атомарности – на пересечении строк и столбцов только одно значение, а не множество

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

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

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

8. Понятие о языке sql (Structured Query Language - структурированный язык запросов).

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

Язык SQL делится на три части:

-операторы определения данных (англ. Data Definition Language, DDL)

-операторы манипуляции данными (англ. Data Manipulation Language, DML)

-операторы определения доступа к данным (англ. Data Control Language, DCL)

Основные типы данных, поддерживаемые в SQL:

- INTERGER- целое число (до 10 значащих цифр)

- SMALLINT – короткое целое (до 5 цифр)

- DECIMAL (p*q) – десятичное число – всего р- цифр, q- после запятой

- FLOAT- число с плавающей точкой

- CHAR (n) – символьная переменная фиксированной длины из n символов

- VARCHAR (n) - символьная переменная нефиксированной длины, n - max количество символов.

- DATE, - TIME, -DATETIME, -MONEY

История

В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД System R (англ.), для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как англ. Structured English QUEry Language — «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL. Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (англ. cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.Стоит отметить, что SEQUEL был не единственным языком подобного назначения. В Калифорнийском Университете Беркли была разработана некоммерческая СУБД Ingres (являвшаяся, между прочим, дальним прародителем популярной сейчас некоммерческой СУБД PostgreSQL), которая являлась реляционной СУБД, но использовала свой собственный язык QUEL, который, однако, не выдержал конкуренции по количеству поддерживающих его СУБД с языком SQL. Первыми СУБД, поддерживающими новый язык, стали в 1979 году Oracle V2 для машин VAX от компании Relational Software Inc. (впоследствии ставшей компанией Oracle) и System/38 от IBM, основанная на System/R. Вопреки сложившемуся мнению, первой стала именно СУБД Oracle V2.Первый официальный стандарт языка SQL был принят ANSI в 1986 и ISO (Международной организацией по стандартизации) в 1987 (так называемый SQL-86) и несколько уточнён в 1989 году. Дальнейшее развитие языка поставщиками СУБД потребовало принятия в 1992 г. нового расширенного стандарта (ANSI SQL-92 или просто SQL2). Следующим стандартом стал SQL:1999 (SQL3). В настоящее время действует стандарт, принятый в 2003 году (SQL:2003) с небольшими модификациями, внесёнными позже.

Преимущества:

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

-Наличие стандартов (наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка).

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

Недостатки:

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

- Отступления от стандартов (несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

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