Шпаргалка по "Информатике"

Автор работы: Пользователь скрыл имя, 19 Мая 2013 в 07:10, шпаргалка

Описание

Базы данных и файловые системы
СУБД определение, функции
СУБД определение, классификация
БД основные определения, классификация
Объекты базы данных
Физическая структура БД в SQL Server
Структурная часть реляционной модели
Фундаментальные свойства отношений
Реляционная алгебра Кодда
Целостность реляционных данных, стратегии поддержания ссылочной целостности
Этапы разработки баз данных
Нормальные формы отношений
Модель сущность-связь.

Работа состоит из  1 файл

Бд.doc

— 434.00 Кб (Скачать документ)

 

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

 

Коррелированные запросы в параметре WHERE:

Определить  Номер заказа и дату заказа для  первого заказа каждого из клиентов

SELECT o1.CustomerID, o1.OrderID,o1.OrderDate

FROM Orders o1

WHERE o1.OrderDate=(SELECT MIN(o2.OrderDate) FROM Orders o2 WHERE o2.CustomerID=o1.CustomerID)

ORDER BY CustomerID

 

Коррелированные запросы в списке полей оператора SELECT:

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

SELECT cu.CompanyName,

(SELECT MIN(OrderDate) FROM Orders o WHERE o.CustomerID=cu.CustomerID)

FROM  Customers cu

 

 

 

 

19) Операторы DML

DML (Data Manipulation Language) - язык манипулирования данными, который используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд: INSERT, UPDATE, DELETE.

 

Оператор  вставки

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

 

INSERT INTO <имя_таблицы>     [(имя_столбца [,...n])]   

 

{VALUES (значение[,...n])

|     <SELECT_оператор>}

 

При вставке  строки в таблицу проверяются  все ограничения, наложенные на данную таблицу. Это могут быть ограничения  первичного ключа или уникального  индекса, проверочные ограничения  типа CHECK, ограничения ссылочной целостности. В случае нарушения какого-либо ограничения вставка строки будет отвергнута.

Первая форма  оператора INSERT с параметром VALUES предназначена  для вставки единственной строки в указанную таблицу.

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

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

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

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

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

Преодолеть  ограничение на вставку одной  строки в операторе INSERT при использовании VALUES позволяет искусственный прием использования подзапроса, формирующего строку с предложением UNION ALL. Так если нам требуется вставить несколько строк при помощи одного оператора INSERT, можно написать:

INSERT INTO Products   

SELECT ‘Стул’, 1200   

UNION ALL    

SELECT ‘Стол', 3000   

UNION ALL    

SELECT ‘Шкаф', 5000

Вторая форма  оператора INSERT с параметром SELECT позволяет  скопировать множество строк  из одной таблицы в другую.

 

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

Все ограничения, указанные выше для первой формы  оператора SELECT, применимы и в этом случае.

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

 

Оператор  удаления

Оператор DELETE предназначен для удаления группы записей из таблицы.

DELETE     FROM <имя_таблицы>[WHERE <условие_отбора>]

Здесь параметр имя_таблицы представляет собой  либо имя таблицы базы данных.

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

Для удаления всех записей из таблицы также может  использоваться оператор TRUNCATE TABLE <имя_таблицы>

 

Оператор  обновления

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

 

UPDATE имя_таблицы 

SET имя_столбца=<выражение>[,...n]  

[WHERE <условие_отбора>]

 

Параметр имя_таблицы  – это либо имя таблицы базы данных.

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

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

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

 

 

20) Операторы DDL

DDL (Data Definition Language, DDL) - язык определения данных, который позволяет создавать и изменять структуру объектов базы данных.

 

Создание  базы данных

Процесс создания базы данных в системе SQL-сервера  состоит из двух этапов:

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

Информация  размещается в соответствующих  файлах, имеющих расширения *.mdf (для  базы данных) и *.ldf. (для журнала транзакций). В файле базы данных записываются сведения об основных объектах (таблицах, индексах, просмотрах и т.д.), а в файле журнала транзакций – о процессе работы с транзакциями (контроль целостности данных, состояния базы данных до и после выполнения транзакций).

Создание базы данных в системе SQL-сервер осуществляется командой CREATE DATABASE

CREATE DATABASE имя_базы_данных 

[ON [PRIMARY]   [ <определение_файла>  [,...n] ]

[,<определение_группы> [,...n] ] ]

[ LOG ON {<определение_файла>[,...n] } ]  

[ FOR LOAD | FOR ATTACH ]

При выборе имени  базы данных следует руководствоваться  общими правилами именования объектов. Если имя базы данных содержит пробелы  или любые другие недопустимые символы, оно заключается в ограничители (двойные кавычки или квадратные скобки). Имя базы данных должно быть уникальным в пределах сервера и не может превышать 128 символов.

Параметр ON определяет список файлов на диске для размещения информации, хранящейся в базе данных.

Параметр PRIMARY определяет первичный файл. Если он опущен, то первичным является первый файл в списке.

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

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

<определение_файла>::=   (

[ NAME=логическое_имя_файла,]  

FILENAME='физическое_имя_файла'  

[,SIZE=размер_файла  ]  

[,MAXSIZE={max_размер_файла  |UNLIMITED } ]  

[, FILEGROWTH=величина_прироста ] )[,...n]

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

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

Параметр SIZE определяет первоначальный размер файла; минимальный размер параметра – 512 Кб, если он не указан, по умолчанию принимается 1 Мб.

Параметр MAXSIZE определяет максимальный размер файла базы данных. При значении параметра UNLIMITED максимальный размер базы данных ограничивается свободным  местом на диске.

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

Дополнительные  файлы могут быть включены в группу:

<определение_группы>::=FILEGROUP имя_группы_файлов    <определение_файла>[,...n]

 

Изменение базы данных

Большинство действий по изменению конфигурации базы данных выполняется с помощью следующей  конструкции:

ALTER DATABASE имя_базы_данных 

{ ADD FILE <определение_файла>[,...n]     [TO FILEGROUP имя_группы_файлов ] 

| ADD LOG FILE <определение_файла>[,...n] 

| REMOVE FILE логическое_имя_файла  

| ADD FILEGROUP имя_группы_файлов 

| REMOVE FILEGROUP имя_группы_файлов 

| MODIFY FILE <определение_файла> 

| MODIFY FILEGROUP имя_группы_файлов  <свойства_группы_файлов>}

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

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

Параметры файлов и групп файлов можно изменять (MODIFY).

Для удаления из базы данных файлов или групп файлов используется параметр REMOVE. Однако удаление файла возможно лишь при условии его освобождения от данных. В противном случае сервер не разрешит удаление.

В качестве свойств  группы файлов используются следующие:

READONLY – группа файлов используется только для чтения; READWRITE – в группе файлов разрешаются изменения; DEFAULT – указанная группа файлов принимается по умолчанию.

 

Удаление  базы данных

Удаление базы данных осуществляется командой:

DROP DATABASE имя_базы_данных [,...n]

Удаляются все  содержащиеся в базе данных объекты, а также файлы, в которых она  размещается.

 

 

21) Операторы DDL (определение структуры таблицы)

DDL (Data Definition Language, DDL) - язык определения данных, который позволяет создавать и изменять структуру объектов базы данных.

 

Создание  таблицы

Таблица – основной объект для хранения информации в реляционной базе данных. Она состоит из содержащих данные строк и столбцов, занимает в базе данных физическое пространство и может быть постоянной или временной.

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

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

CREATE TABLE     

[ имя_базы_данных.[ владелец ] . | владелец. ] имя_таблицы    

( { < определение_столбца >         

| название_столбца AS выражение_для вычисляемого_столбца         

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

| [ { PRIMARY KEY | UNIQUE } [ ,...n ]     

)

[ ON { файловая_группа | DEFAULT } ]

 

< определение_столбца  > ::= { название_столбца тип_данных }     

[ [ DEFAULT выражение_для_значения_по_умолчанию ]     

| [ IDENTITY [ ( первоначальное_значение , инкремент )] ]    

[ < ограничение_для_столбца  > ] [ ...n ]

 

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

{ [ NULL | NOT NULL ]      

| [ { PRIMARY KEY | UNIQUE }  [ CLUSTERED | NONCLUSTERED ]               

[ON {filegroup | DEFAULT} ] ]      

| [ [ FOREIGN KEY ]

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

[ ON DELETE { CASCADE | NO ACTION } ]             

[ ON UPDATE { CASCADE | NO ACTION } ] ]      

| CHECK     ( логическое_выражение )     

}

 

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

{ [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ]         

{ ( имя_столбца [ ASC | DESC ] [ ,...n ] ) }         

[ ON {файловая_группа | DEFAULT } ] ]     

 

    | FOREIGN KEY         

[ (имя_столбца [ ,...n ] ) ]         

REFERENCES имя_родительской_таьлицы [ ( назв_столбца [ ,...n ] ) ]         

[ ON DELETE { CASCADE | NO ACTION } ]         

[ ON UPDATE { CASCADE | NO ACTION } ]         

[ NOT FOR REPLICATION ]     

 

   | CHECK  ( условие_проверки )     

}

 

 

Изменение таблицы

Информация о работе Шпаргалка по "Информатике"