Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
22700_62_OSBD_Lektsii.doc
Скачиваний:
61
Добавлен:
11.02.2015
Размер:
1.11 Mб
Скачать

Тема 4. Работа с данными. Язык баз данных Лекция №4. Основные понятия языка баз данных на примереSql

В рамках данной лекции рассматриваются нижеследующие вопросы:

  • Понятие языка программирования баз данных.

  • Языки DDL, DML, DCL.

  • DML: процедурные и декларативные языки; операции низкого и высокого уровней

  • Хранимые и формируемые объекты базы данных

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

  • Ограничения

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

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

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

Язык SQL, или язык структурированных запросов (Structured Query Language), ориентированна использованиев реляционных СУБД. Он прошел несколько этапов своего развития и первоначально создавался с целью получения языка запросов, приближенного к естественному (английскому). Операторы, или предложения (statements), языка имеют сложную структуру, напоминающую конструкцию сложно-подчиненного предложения, в котором имеются главное и подчиненное (clause) предложения.

Язык SQL является машинно-независимым и декларативным, т.е., описывающим свойства искомого объекта, а не алгоритм его поиска, причем описывающим вмашинно-независимом текстовом формате. В настоящее время SQL стандартизован,чтобы его понимали серверы различных производителей.

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

  • Data Definition Language (DDL). Язык описания данных. Содержит операторы, позволяющие определять структуру и свойства базы данных, объектов в БД и задавать связи между объектами (например,CREATETABLE,CREATEVIEW).

  • Data Manipulation Language (DML). Язык манипулирования данными. Содержит операторы, предназначенные для обработки данных, т.е. для того, чтобы выбирать, добавлять, удалять и модифицировать данные (SELECT, INSERT, DELETE, UPDATE).

  • Transaction Control Language (TCL). Язык управления транзакциями. Операторы этого языка применяются для управлениятранзакциями, илилогическими единицами работы, выполняемыми как атомарная операция.

  • Data Control Language (DCL). Операторы языка применяются для осуществления административных функций назначения или отмены разрешений на использование базы данных, таблицы в базе данных, а также выполнения операторов SQL.

  • Cursor Control Language (CCL). Операторы используются для определения объекта «курсор», подготовки SQL-предложений для выполнения, а также для некоторых других операторов.

Работа по реализации БД начинают с описания ее схемына языкеDDL.

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

Схема представляет структуру БД: состав, структуру, свойства и связи объектов базы данных.

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

  • Какую сущность будет представлять таблица, или каково назначение таблицы.

  • Число столбцов в таблице и тип данных и формат (если это необходимо) каждого столбца.

  • Имеются ли столбцы, которые могут принимать значения NULL.

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

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

Сокращенный синтаксис оператора CREATETABLEпоказывает структуру описания таблицы, задание ограничений на таблицу и столбцы, а также виды ограничений.

CREATE TABLEимя_таблицы ({<определение столбца> | < определение вычисляемого столбца>} [ <ограничение таблицы> ] [ ,...n] )

<определение столбца> ::=имя столбца <тип данных> [<ограничение столбца>]

Ограничение столбца:

<ограничение столбца>::= [CONSTRAINTимя ограничения ]

{ { PRIMARY KEY | UNIQUE }

[ CLUSTERED | NONCLUSTERED ] | [ FOREIGN KEY ]

REFERENCES[ имя связанной таблицы [(связанный столбец)]

[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] }

Рассмотрим примеры применения операторов языка SQL.

1) Таблицы должны находиться в базе данных. Поэтому сначала необходимо создать БД:

CREATE DATABASETestData;

2) Создание таблицы с данными о студентах:

CREATE TABLEdbo.Students (StudentID int PRIMARY KEY NOT NULL,

StudentName varchar(25) NOT NULL, Stipend money NULL,

StudentDescriptiontextNULL)

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

CREATE VIEW[ имя представления [ (столбец [ ,...n] ) ]

ASоператорselect

3) Например, создание представления:

CREATE VIEWStud_Names

AS

SELECT StudentName, Stipend

FROMStudents;

Синтаксис оператора SELECTочень громоздкий. Обобщенно он содержит:

SELECTперечень_имен_столбцов [INTOимя_новой_таблицы ]

[ FROMтаблица_источник ] [WHEREусловие_выборки ]

[ GROUP BYгруппирование_по ]

[ HAVINGусловие_выборки_при группировании ]

[ ORDER BYупорядоченность [ASC|DESC] ] (по возрастанию/убыванию)

4) Например:

SELECTStudentID, StudentName, Stipend, StudentDescription

FROMdbo.Students

Если необходимы все столбцы таблицы, указывается звездочка (*):

5) SELECT*FROMStudents

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

SELECTStudentName,Stipend

FROMdbo.Students

7) Пример выборки по условию:

SELECTStudentID, StudentName, Stipend, StudentDescription

FROM dbo.Students

WHERE StudentName = ‘Иванов’

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

8) Например, при выборке из таблицы можно вычислять ActualStip(фактическая стипендия):

SELECTStudentName, Stipend * 1.17 AS ActualStip

FROMdbo.Students

Оператор CREATE TABLEсоздаетпустуютаблицу. ОператорINSERTпредназначен для вставки строки в таблицу. Вставка в таблицу предполагает задание значений столбцов. Например:

9) INSERT dbo.Students ( StudentID, StudentName, Stipend, StudentDescription)

VALUES (1234, 'Иванов', 1200, 'староста') или

10) другой порядок ввода значений, указанный явно:

INSERTdbo.Students ( StudentName, StudentID, Stipend, StudentDescription)

VALUES('Иванова', 5678, 1200, '')

11) имена столбцов перечислять не обязательно, если значения перечислены в порядке, соответствующем указанному в CREATE TABLE:

INSERTdbo.Students

VALUES (9012, 'Иванов', NULL, 'восстановлен')

12) Значения столбцов можно обновлять:

UPDATEdbo.Students

SETStipend= 1000

WHEREStudentID= 9012

13) Пример возможностей синтаксиса операторов SQL

CREATE VIEWstudmark_view

AS

SELECTc.StudName, c.StudGroup, e.Mark, e.Date

FROMStudentExam e JOIN Student c on e.StudID = c.StudID ;

Основная литература

Учебник / Учебное пособие

Раздел

Страницы

1. Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001.- 304 с.; ил.

Глава 5

66-103

2. Хомоненко А.Д, Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / под ред. проф. Хомоненко А.Д., 6-ое изд. – М.:Бином-Пресс; СПб.:Корона-Век, 2007.-736с.

Гл.10

277-365

Дополнительная литература

Учебник / Учебное пособие

Раздел

Страницы

1. Дейт К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. – К.;М.; СПб.: Издательский дом “Вильямс”,. 1999. – 848 с.: ил. (7-е и 8-е издание).

6.1 – 6.5, 6.7 – 6.10

142-156, 159--170

2. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд.: Пер. с англ. - М.: Издательский дом “Вильямс”,. 2001. – 1120 с.: ил.

13.1 – 13.5, 14.7,14.8

421-471, 529-533

Соседние файлы в предмете Операционные системы